链接:
56. 合并区间
题意:
如题
解:
排序题,先将最早出现且最大的区间放在前面即可,差一点就要补卡了 23:59通过
实际代码:
#include<bits/stdc++.h>
using namespace std;
class Solution {
public:static bool cmp(const vector<int>& lhs,const vector<int>& rhs){if(lhs[0]==rhs[0]) return lhs[1]>rhs[1];else return lhs[0]<rhs[0];}vector<vector<int>> merge(vector<vector<int>>& intervals) {sort(intervals.begin(),intervals.end(),cmp);vector<vector<int>>ans;int left=-1,right=-1;for(auto interval:intervals){if(left==-1){left=interval[0];right=interval[1];}else{if(interval[0]<=right){right=max(interval[1],right);}else{vector<int>temp{left,right};ans.push_back(temp);left=interval[0];right=interval[1];}}}vector<int>temp{left,right};ans.push_back(temp);return ans;}
};
int main()
{return 0;
}
限制:
1 <= intervals.length <= 104
intervals[i].length == 2
0 <= starti <= endi <= 104