title: 56. Merge Intervals
tags:
- Interval
categories: leetcode
comments: false
class Solution {
public:
vector<vector<int>> merge(vector<vector<int>>& intervals) {
// ε
ζεΊοΌεθ§ε―θ¦εΎ
// ζειηstart εεΊζεΊ
sort(intervals.begin(), intervals.end(), [](vector<int>& a, vector<int>&b){
return a[0]<b[0];
});
vector<vector<int>> ret;
int n = intervals.size(), start =intervals[0][0], end= intervals[0][1];
ret.push_back({start, end});
for(int i=1;i<n;++i){
vector<int>& cur = intervals[i];
// ζΎε°ζειζιηοΌδΈ¦ζ΄ζ°ζε€§ηend
if(ret.back()[1] >= cur[0]){
ret.back()[1] =max( cur[1], ret.back()[1]);
}
// θηδΈδΈεει
else{
ret.push_back(cur);
}
}
return ret;
}
};
- time complexity
O(nlogn)
- space complexity
O(1)