Skip to content

Commit ecb59e7

Browse files
committed
# 277 solution
1 parent 05d9b79 commit ecb59e7

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed

insert-interval/sungjinwi.cpp

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
/*
2+
풀이 :
3+
기존 배열 중 start가 newInterval보다 빠르면서 newInterval과 겹치지 않는 요소들 result에 push
4+
겹치는 요소들은 newInterval에 통합 후 result에 push
5+
그 후 나머지 겹치지 않는 부분 result에 push
6+
7+
intervals 개수 : N
8+
9+
TC : O (N)
10+
11+
SC : O (1)
12+
리턴하는 배열 외에 추가 공간 사용 X
13+
*/
14+
15+
#include <vector>
16+
using namespace std;
17+
18+
class Solution {
19+
public:
20+
vector<vector<int>> insert(vector<vector<int>>& intervals, vector<int>& newInterval) {
21+
vector<vector<int>> result;
22+
int i = 0;
23+
int n = intervals.size();
24+
25+
while (i < n && intervals[i][1] < newInterval[0]) {
26+
result.push_back(intervals[i]);
27+
i++;
28+
}
29+
30+
while (i < n && intervals[i][0] <= newInterval[1]) {
31+
newInterval[0] = min(intervals[i][0], newInterval[0]);
32+
newInterval[1] = max(intervals[i][1], newInterval[1]);
33+
i++;
34+
}
35+
result.push_back(newInterval);
36+
37+
while (i < n) {
38+
result.push_back(intervals[i]);
39+
i++;
40+
}
41+
return result;
42+
}
43+
};

0 commit comments

Comments
 (0)