Skip to content

Commit 2dc0827

Browse files
committed
#277 Insert Interval
1 parent 76d9a26 commit 2dc0827

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed

insert-interval/forest000014.java

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
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+
}

0 commit comments

Comments
 (0)