力扣56. 合并区间
归根结底还是要辅助空间,创建一个返回值的vector,另外sort可以直接排序这种复杂纯数据,即使是二维的,也会按照先第一维,然后第二维的顺序,排序正确。
1 class Solution { 2 public: 3 vector<vector<int>> merge(vector<vector<int>>& intervals) { 4 sort(intervals.begin(), intervals.end()); 5 vector<vector<int>> ret; 6 ret.push_back(intervals[0]); 7 for (int i = 1; i < intervals.size(); ++i) { 8 int a1 = ret.back()[0]; 9 int b1 = ret.back()[1]; 10 int a2 = intervals[i][0]; 11 int b2 = intervals[i][1]; 12 if (a2 >= a1 && a2 <= b1) 13 ret.back()[1] = max(b1, b2); 14 else 15 ret.push_back({a2, b2}); 16 } 17 return ret; 18 } 19 };
浙公网安备 33010602011771号