很经典的一道题哦,来一手贪心,是可以严格证明的,不过在敲代码的过程中,严格证明不需要。
更多的是一种感觉,这个贪心可以贪的感觉。
class Solution {
public:
vector<vector<int>> merge(vector<vector<int>>& intervals) {
vector<vector<int>> res;
sort(intervals.begin(),intervals.end());
int st = -2e9, ed = -2e9;
for(int i = 0; i < intervals.size(); ++i){
if(intervals[i][0] > ed){
if(st != -2e9) res.push_back({st, ed});
st = intervals[i][0];
ed = intervals[i][1];
}
else{
if(intervals[i][1] > ed){
ed = intervals[i][1];
}
}
}
if(st != -2e9) res.push_back({st, ed});
return res;
}
};
前两天刚刚看过y总的算法基础课的一讲,就讲了这题,今日在leetcode上实践了一下,感觉很好!