File tree Expand file tree Collapse file tree 2 files changed +54
-0
lines changed
non-overlapping-intervals Expand file tree Collapse file tree 2 files changed +54
-0
lines changed Original file line number Diff line number Diff line change 1+ // Time Complexity: O(n log n)
2+ // Space Complexity: O(1)
3+
4+ var eraseOverlapIntervals = function ( intervals ) {
5+ // sort the intervals based on their end times
6+ intervals . sort ( ( a , b ) => a [ 1 ] - b [ 1 ] ) ;
7+
8+ let end = intervals [ 0 ] [ 1 ] ;
9+ let count = 0 ;
10+
11+ // iterate through the sorted intervals
12+ for ( let i = 1 ; i < intervals . length ; i ++ ) {
13+ if ( intervals [ i ] [ 0 ] < end ) {
14+ // overlapping interval found, increment the count
15+ count ++ ;
16+ } else {
17+ // no overlap, update the end to the current interval's end
18+ end = intervals [ i ] [ 1 ] ;
19+ }
20+ }
21+
22+ return count ;
23+ } ;
Original file line number Diff line number Diff line change 1+ // Time Complexity: O(n^2)
2+ // Space Complexity: O(1)
3+
4+ var rotate = function ( matrix ) {
5+ const n = matrix . length ;
6+
7+ // perform the rotation layer by layer
8+ for ( let layer = 0 ; layer < Math . floor ( n / 2 ) ; layer ++ ) {
9+ let first = layer ;
10+ let last = n - 1 - layer ;
11+
12+ for ( let i = first ; i < last ; i ++ ) {
13+ let offset = i - first ;
14+
15+ // save the top element
16+ let top = matrix [ first ] [ i ] ;
17+
18+ // move left element to top
19+ matrix [ first ] [ i ] = matrix [ last - offset ] [ first ] ;
20+
21+ // move bottom element to left
22+ matrix [ last - offset ] [ first ] = matrix [ last ] [ last - offset ] ;
23+
24+ // move right element to bottom
25+ matrix [ last ] [ last - offset ] = matrix [ i ] [ last ] ;
26+
27+ // assign saved top element to right
28+ matrix [ i ] [ last ] = top ;
29+ }
30+ }
31+ } ;
You can’t perform that action at this time.
0 commit comments