435. 无重叠区间
class Solution {
public:
static bool cmp(vector<int> &a, vector<int> &b){
return a[0] < b[0];
}
int eraseOverlapIntervals(vector<vector<int>>& intervals) {
if(intervals.size() == 00) return 0;
sort(intervals.begin(), intervals.end(), cmp);
int num = 0;
for(int i = 1; i < intervals.size(); i++){
if(intervals[i][0] >= intervals[i-1][1]){
intervals[i][1] = intervals[i][1];
}else{
intervals[i][1] = min(intervals[i][1], intervals[i - 1][1]);
num++;
}
}
return num;
}
};
763.划分字母区间
这个题没看懂要干什么
56. 合并区间
我觉得这个题还是比较有思路的,先排序,在判断是否重叠,重叠则更新左右边界,不重叠就插入到新二维数组里。
class Solution {
public:
static bool cmp(vector<int> &a, vector<int> &b){
return a[0] < b[0];
}
vector<vector<int>> merge(vector<vector<int>>& intervals) {
sort(intervals.begin(), intervals.end(), cmp);
vector<vector<int>> res;
for(int i = 1; i < intervals.size(); i++){
if(intervals[i][0] <= intervals[i - 1][1]){
intervals[i][0] = min(intervals[i-1][0], intervals[i][0]);
intervals[i][1] = max(intervals[i-1][1], intervals[i][1]);
}
else{
res.push_back(intervals[i - 1]);
}
}
res.push_back(intervals[intervals.size() - 1]);
return res;
}
};