class Solution {
public:
vector<vector<int>> merge(vector<vector<int>>& intervals) {
vector<vector<int>>ans;
int x_start, x_end;
sort(intervals.begin(), intervals.end());
x_start = intervals[0][0];
x_end = intervals[0][1];
for (int i = 0; i < intervals.size(); i++) {
if (intervals[i][0]<=x_end && intervals[i][1]>x_end)
x_end = intervals[i][1];
else if (intervals[i][0] > x_end) {
ans.push_back({ x_start,x_end });
x_start = intervals[i][0];
x_end = intervals[i][1];
}
}
ans.push_back({ x_start,x_end });
return ans;
}
};