leetcode归并排序_如何进行区间筛选

leetcode归并排序_如何进行区间筛选以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。示例 1:输入:intervals = [[1,3],[2,6],[8,10],[15,18]]输出:[[1,6],[8,10],[15,18]]解释:区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].示例 2:输入:intervals = [[1,4],[4,5

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。

示例 1:

输入:intervals = [[1,3],[2,6],[8,10],[15,18]]
输出:[[1,6],[8,10],[15,18]]
解释:区间 [1,3][2,6] 重叠, 将它们合并为 [1,6].
示例 2:

输入:intervals = [[1,4],[4,5]]
输出:[[1,5]]
解释:区间 [1,4][4,5] 可被视为重叠区间。
 

提示:

1 <= intervals.length <= 104
intervals[i].length == 2
0 <= starti <= endi <= 104

题解
相对0坐标进行排序,然后贪心即可。

class Solution { 
   
public:
    bool cmp(vector<int>&a,vector<int>&b){ 
   
        if(a[0] == b[0])return a[1] < b[1];
        return a[1] < b[1];
    }
    vector<vector<int>> merge(vector<vector<int>>& intervals) { 
   
        sort(intervals.begin(),intervals.end());
        vector<vector<int> >res;
        int i = 0;
        while(i < intervals.size()){ 
   
            int j = i,l = intervals[i][1];
            while(j < intervals.size() && intervals[j][0] <= l){ 
   
                l = max(l,intervals[j][1]);
                j ++;
            }
            res.push_back({ 
   intervals[i][0],l});
            i = j;
        }

        return res;
    }
};
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/169160.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • malloc函数实现原理!

    malloc函数实现原理!任何一个用过或学过C的人对malloc都不会陌生。大家都知道malloc可以分配一段连续的内存空间,并且在不再使用时可以通过free释放掉。但是,许多程序员对malloc背后的事情并不熟悉,许多人甚至把malloc当做操作系统所提供的系统调用或C的关键字。实际上,malloc只是C的标准库中提供的一个普通函数,而且实现malloc的基本思想并不复杂,任何一个对C和操作系统有些许了解的程序员都可以很

    2022年5月31日
    42
  • 二十三又是谁的二十三

    二十三又是谁的二十三23岁那年你正处在哪个状态?现在呢?我,23岁,应届毕业生。生活,工作,爱情都处于人生的低谷,一穷二白,一无所有,一事无成。分享一下成长的建议吧。匿名用户23岁那年…就是去年…在22岁的时候我毕业,同时第二年准备考研,结果因为压力太大,期望太高,又失利了,但是我依然满怀信心和憧憬在我23岁那年四月,当我深爱的女孩(在这之前我追了她四年)说她要去北京时,我在毫无准备的情况下,带了2000块钱冲到北京,那会的北京还有点冷…但是我只是想打好前站,在她来的时候能提供一点帮助,在前两周里,每天面试两家公

    2022年7月25日
    10
  • oracle insert优化「建议收藏」

    oracle insert优化「建议收藏」author:skatetime:2010/10/19insert优化要想提高insert的速度,首先要知道什么影响insert慢,在执行insert的过程中产生redo和undo,要想提高insert的速度,在充分利用系统资源的条件下就要尽量减少insert

    2022年7月25日
    28
  • python怎么换行输出的数字对齐_print语句输出换行,format格式化输出「建议收藏」

    print其实本来挺简单的一个函数,奈何每次用都忘记了怎么换行输出,所以想想算了还是自己做个记录,免得每次都要去查.print函数用法:print(value,…,sep=”,end=’\n’,file=sys.stdout,flush=False)Printsthevaluestoastream,ortosys.stdoutbydefault.Optiona…

    2022年4月15日
    163
  • c/c++成长之捷径 C/C++学习资料大全

    c/c++成长之捷径 C/C++学习资料大全socket协议三次握手与结束连接客户端代码:#include#include#include//forbzero#include//forsocketaddr_in#include#include#include#definePORT5050//端口号#defineMAXLEN_FOR_DATA

    2022年10月8日
    3
  • Oracle中的NULL、’’(空字符串)以及’_’(空格)

    Oracle中的NULL、’’(空字符串)以及’_’(空格)

    2021年9月12日
    137

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号