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