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