File tree Expand file tree Collapse file tree 1 file changed +33
-0
lines changed Expand file tree Collapse file tree 1 file changed +33
-0
lines changed Original file line number Diff line number Diff line change 1+ /**
2+ * https://leetcode.com/problems/insert-interval/submissions/1678158074/
3+ * @param {number[][] } intervals
4+ * @param {number[] } newInterval
5+ * @return {number[][] }
6+ */
7+ var insert = function ( intervals , newInterval ) {
8+ const result = [ ] ;
9+ let i = 0 ;
10+ const n = intervals . length ;
11+
12+ // 1. newInterval보다 끝나는 시점이 먼저인 interval은 그냥 추가
13+ while ( i < n && intervals [ i ] [ 1 ] < newInterval [ 0 ] ) {
14+ result . push ( intervals [ i ] ) ;
15+ i ++ ;
16+ }
17+
18+ // 2. newInterval과 겹치는 interval은 병합
19+ while ( i < n && intervals [ i ] [ 0 ] <= newInterval [ 1 ] ) {
20+ newInterval [ 0 ] = Math . min ( newInterval [ 0 ] , intervals [ i ] [ 0 ] ) ;
21+ newInterval [ 1 ] = Math . max ( newInterval [ 1 ] , intervals [ i ] [ 1 ] ) ;
22+ i ++ ;
23+ }
24+ result . push ( newInterval ) ;
25+
26+ // 3. 나머지 interval은 그대로 추가
27+ while ( i < n ) {
28+ result . push ( intervals [ i ] ) ;
29+ i ++ ;
30+ }
31+
32+ return result ;
33+ } ;
You can’t perform that action at this time.
0 commit comments