Skip to content

Commit 3f7e11e

Browse files
authored
Merge Ranges | O(nlgn) time due to sorting and O(n) comparison
1 parent 08461ab commit 3f7e11e

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

Greedy/merge.cpp

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
class Solution {
2+
public:
3+
vector<vector<int>> merge(vector<vector<int>>& intervals) {
4+
// sort it -> O(nlgn) time
5+
sort(intervals.begin(), intervals.end());
6+
vector<vector<int>> res;
7+
if(intervals.size() == 0)
8+
return res;
9+
int f = intervals[0][0];
10+
int s = intervals[0][1];
11+
for(int i = 0; i < intervals.size(); ++i) {
12+
if (intervals[i][0] <= s) {
13+
if(intervals[i][1] > s) {
14+
s = intervals[i][1];
15+
}
16+
} else {
17+
res.push_back({f, s});
18+
f = intervals[i][0];
19+
s= intervals[i][1];
20+
}
21+
}
22+
res.push_back({f,s});
23+
return res;
24+
}
25+
};

0 commit comments

Comments
 (0)