File tree Expand file tree Collapse file tree 1 file changed +34
-0
lines changed Expand file tree Collapse file tree 1 file changed +34
-0
lines changed Original file line number Diff line number Diff line change
1
+ /*
2
+ # Time Complexity: O(n)
3
+ # Space Complexity: O(1)
4
+ */
5
+ class Solution {
6
+ public int [][] insert (int [][] intervals , int [] newInterval ) {
7
+ ArrayList <int []> answer = new ArrayList <>();
8
+
9
+ int i = 0 ;
10
+ int n = intervals .length ;
11
+
12
+ // newInterval보다 왼쪽의 구간들 추가
13
+ while (i < n && intervals [i ][1 ] < newInterval [0 ]) {
14
+ answer .add (intervals [i ]);
15
+ i ++;
16
+ }
17
+
18
+ // newInterval과 겹치는 구간들 병합
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
+ answer .add (newInterval );
25
+
26
+ // newInterval보다 오른쪽의 구간들 추가
27
+ while (i < n ) {
28
+ answer .add (intervals [i ]);
29
+ i ++;
30
+ }
31
+
32
+ return answer .toArray (new int [answer .size ()][]);
33
+ }
34
+ }
You can’t perform that action at this time.
0 commit comments