File tree Expand file tree Collapse file tree 1 file changed +31
-0
lines changed Expand file tree Collapse file tree 1 file changed +31
-0
lines changed Original file line number Diff line number Diff line change 1+ // TC: O(n)
2+ // SC: O(n)
3+ function insert ( intervals : number [ ] [ ] , newInterval : number [ ] ) : number [ ] [ ] {
4+ const result : number [ ] [ ] = [ ] ;
5+ const n = intervals . length ;
6+ let i = 0 ;
7+
8+ // Add all intervals that come before newInterval
9+ while ( i < n && intervals [ i ] [ 1 ] < newInterval [ 0 ] ) {
10+ result . push ( intervals [ i ] ) ;
11+ i ++ ;
12+ }
13+
14+ // Merge all overlapping intervals with newInterval
15+ while ( i < n && intervals [ i ] [ 0 ] <= newInterval [ 1 ] ) {
16+ newInterval [ 0 ] = Math . min ( intervals [ i ] [ 0 ] , newInterval [ 0 ] ) ;
17+ newInterval [ 1 ] = Math . max ( intervals [ i ] [ 1 ] , newInterval [ 1 ] ) ;
18+ i ++ ;
19+ }
20+
21+ result . push ( newInterval ) ;
22+
23+ // Add remaining intervals after newInterval
24+ while ( i < n ) {
25+ result . push ( intervals [ i ] ) ;
26+ i ++ ;
27+ }
28+
29+ return result ;
30+ }
31+
You can’t perform that action at this time.
0 commit comments