力扣56. 合并区间

 

归根结底还是要辅助空间,创建一个返回值的vector,另外sort可以直接排序这种复杂纯数据,即使是二维的,也会按照先第一维,然后第二维的顺序,排序正确。

题目:【https://leetcode.cn/problems/merge-intervals/description/?envType=study-plan-v2&envId=top-interview-150

 

 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 };

 

posted @ 2025-05-09 16:13  J&YANG  阅读(4)  评论(0)    收藏  举报