class Solution {
public:
//求最大数量的不重叠区间
//按结束时间排升序, 结束时间相同的按开始时间排升序
struct node{
int st, ed;
}nodes[100005];
static bool cmp(node a, node b){
if(a.ed == b.ed) return a.st < b.st;
return a.ed < b.ed;
}
int eraseOverlapIntervals(vector<vector<int>>& intervals) {
int n = intervals.size();
for(int i = 0; i < n; i++){
nodes[i].st = intervals[i][0];
nodes[i].ed = intervals[i][1];
}
sort(nodes, nodes + n, cmp);
int cnt = 1;
int now_ed = nodes[0].ed;
for(int i = 1; i < n; i++){
if(nodes[i].st >= now_ed){
now_ed = nodes[i].ed;
cnt++;
}
}
return n - cnt;
}
};