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