AcWing
  • 首页
  • 课程
  • 题库
  • 更多
    • 竞赛
    • 题解
    • 分享
    • 问答
    • 应用
    • 校园
  • 关闭
    历史记录
    清除记录
    猜你想搜
    AcWing热点
  • App
  • 登录/注册

LeetCode 56. 区间和并    原题链接    简单

作者: 作者的头像   Yuze_Neko ,  2025-03-21 13:42:17 · 福建 ,  所有人可见 ,  阅读 6


0


区间合并

typedef pair<int, int> PII;

bool cmp(vector<int> &a, vector<int> &b)
{
    return a[0] < b[0];
}

class Solution {
public:
    vector<vector<int>> merge(vector<vector<int>>& intervals) {
        PII initial = {-1e9, 1e9};
        vector<vector<int>> ans;
        int maxRight = -1e9;
        sort(intervals.begin(), intervals.end(), cmp);
        for(int i = 0; i < intervals.size(); i++)
        {
            int left = intervals[i][0];
            int right = intervals[i][1];
            maxRight = max(maxRight, right);
            if(right < maxRight) continue;
            if(initial.first == -1e9)
            {
                initial.first = left;
                initial.second = right;
                continue;
            }
            if(initial.second <= right && initial.second >= left)
            {
                initial.second = max(initial.second, right);
            }
            else
            {
                ans.push_back({initial.first, initial.second});
                initial = {-1e9, 1e9};
                i --;
            }

        }
        if (initial.first != -1e9)
        {
            ans.push_back({initial.first, initial.second});
        }
        return ans;
    }

};

0 评论

App 内打开
你确定删除吗?
1024
x

© 2018-2025 AcWing 版权所有  |  京ICP备2021015969号-2
用户协议  |  隐私政策  |  常见问题  |  联系我们
AcWing
请输入登录信息
更多登录方式: 微信图标 qq图标 qq图标
请输入绑定的邮箱地址
请输入注册信息