class Solution
{
public:
bool static cmp(vector<int>& a, vector<int>& b)
{
return a[0] < b[0];
}
int removeCoveredIntervals(vector<vector<int>>& intervals)
{
if (intervals.empty())
{
return 0;
}
vector<vector<int>> vec;
sort(intervals.begin(), intervals.end(), cmp);
vec.push_back(intervals[0]);
for (int i = 1; i < intervals.size(); ++i)
{
if (vec.back()[0] <= intervals[i][0] && vec.back()[1] >= intervals[i][1] || vec.back()[0] >= intervals[i][0] && vec.back()[1] <= intervals[i][1])
{
vec.back()[1] = max(intervals[i][1], vec.back()[1]);
vec.back()[0] = min(intervals[i][0], vec.back()[0]);
}
else
{
vec.push_back(intervals[i]);
}
}
return vec.size();
}
};