LeetCode HOT100 - 合并区间

📅 2026/7/10 6:47:11 👁️ 阅读次数 📝 编程学习
LeetCode HOT100 - 合并区间

代码跑的挺慢的

排序,第一维升序第二维降序

然后每次维护当前的 r(因为 l 一定是递增的)

如果新区间的 l 小于等于 r ,那么就说明重叠了,于是扩大区间

否则把现在的 (l, r) 区间放入

这样完整的扫一遍后就得到结果

class Solution {
public:vector<vector<int>> merge(vector<vector<int>>& a) {sort(a.begin(), a.end(), [&](vector<int> i, vector<int> j){if (i[0] == j[0]) {return i[1] > j[1];}return i[0] < j[0];});vector<vector<int>> ans;int n = a.size();int l = a[0][0], r = a[0][1];for (int i = 1; i < n; i++) {if (a[i][0] <= r) {r = max(r, a[i][1]);} else {ans.push_back({l, r});l = a[i][0];r = a[i][1];}}ans.push_back({l, r});return ans;}
};

看了眼题解,思路好像都是相同的,可能是实现上的问题