class Solution {
public:
static bool cmp(const vector<int>& a, const vector<int>& b)
{
return a[1]<b[1];
}
int eraseOverlapIntervals(vector<vector<int>>& intervals)
{
if (intervals.size()==1) return 0;
sort(intervals.begin(), intervals.end(), cmp);
int end = intervals[0][1];
int count = 0;
for (int i=1;i<intervals.size();i++)
{
if (intervals[i][0]<end)
{
count++;
// end = intervals[i][1];
}
}
int n = intervals.size();
return count;
}
};
class Solution {
public:
static bool cmp(const vector<int>& a, const vector<int>& b)
{
if (a[0]==b[0]) return a[1]<b[1];
return a[0]<b[0];
}
vector<vector<int>> merge(vector<vector<int>>& intervals)
{
if (intervals.size()==1) return intervals;
vector<vector<int>> ans;
sort(intervals.begin(), intervals.end(), cmp);
int last = intervals[0][1];
int first = intervals[0][0];
for (int i=1; i<intervals.size(); i++)
{
if (intervals[i][0]<=last)
{
first = min(first, intervals[i][0]);
last = max(last,intervals[i][1]);
}
else
{
ans.push_back({first, last});
first = intervals[i][0];
last = intervals[i][1];
}
if (i==intervals.size()-1) ans.push_back({first, last});
}
return ans;
}
};