当前位置: 首页 > news >正文

LeetCode[1288]删除被覆盖区间

难度:Medium

题目:

 给你一个区间列表,请你删除列表中被其他区间所覆盖的区间。

只有当 c <= a 且 b <= d 时,我们才认为区间 [a,b) 被区间 [c,d) 覆盖。

在完成所有删除操作后,请你返回列表中剩余区间的数目。


示例:

输入:intervals = [[1,4],[3,6],[2,8]]
输出:2
解释:区间 [3,6] 被区间 [2,8] 覆盖,所以它被删除了。

提示:​​​​​​

  • 1 <= intervals.length <= 1000
  • 0 <= intervals[i][0] < intervals[i][1] <= 10^5
  • 对于所有的 i != jintervals[i] != intervals[j]

Related Topics

  • 数组
  • 排序

重点!!!解题思路

明确解题思路:

         此题类似LeetCode[56]合并区间这道题,前一道题是要将相交的区间合并,但是这一道题要求将包含的区间删除,这一道题明显比前一道题简单,因为此题并不需要考虑交集的情况,之需要考虑什么条件包含即可。

源码+讲解:

    class Solution {public int removeCoveredIntervals(int[][] intervals) {Arrays.sort(intervals, new Comparator<int[]>() {@Overridepublic int compare(int[] o1, int[] o2) {return o1[0] == o2[0] ? o2[1] - o1[1] : o1[0] - o2[0];  //如果左区间相同,那么就根据右区间降序排序。否则就正常根据左区间升序排序}});int cnt=0,end=0,pre_end=0;  //end是此时的右区间,pre_end是上一个右区间for (int[] interval : intervals) {end=interval[1];  //拿到每次的右区间if (end>pre_end){  //当此时的右区间比上一个右区间大时,才能确定这两个区间并不是包含关系cnt++;  //既然不是包含关系 说明不用删除 数组长度可以加1pre_end=end;}}return cnt;}}

 运行结果:

如果您还有什么疑问或解答有问题,可在下方评论,我会及时回复。

系列持续更新中,点个订阅吧,喜欢练习算法那就点个攒吧 

http://www.lryc.cn/news/128517.html

相关文章:

  • QT connect使用简单介绍
  • 【云原生】kuberneter中Helm入门到实践
  • 编译鸿蒙codelabs安装时报错
  • 设计模式
  • 用gdal库读取tif影像并填充边缘,并根据窗口大小滑动裁剪裁剪(包含gdal转PIL)
  • sqlserver数据库导出到mysql
  • 【抓包工具】whistle抓包工具分享
  • docker可视化工具Portainer
  • 售后服务管理系统哪家好?云部署的售后服务软件有什么优势?
  • laravel-admin之 解决上传图片不显示 $form->image(‘image‘); 及 $grid->column(‘image‘);
  • 运营商三要素 API:构建安全高效的身份验证系统
  • 使用 BERT 进行文本分类 (01/3)
  • layui第三方组件cron的使用
  • Linux 信号的基本概念
  • 神经网络基础-神经网络补充概念-31-参数与超参数
  • C# Linq源码分析之Take (二)
  • FPGA控制RGB灯WS2812B
  • 【Linux】【驱动】应用层和驱动层传输数据
  • 【第二阶段】kotlin函数引用
  • sip网络号角喇叭 sip音柱 POE供电广播音箱 ip网络防水对讲终端 sip网络功放
  • 【网络】传输层——TCP(滑动窗口流量控制拥塞控制延迟应答捎带应答)
  • Electron教程_编程入门自学教程_菜鸟教程-免费教程分享
  • LVS负载均衡DR(直接路由)模式
  • 14 anaconda+pycharm环境管理以及源管理
  • 【C语言程序设计】C语言基本数据类型与表达式(思考题)
  • Linux 网络发包流程
  • Python web实战之Django的AJAX支持详解
  • spring boot实现实体类参数自定义校验
  • 网络安全威胁与防御策略
  • C++:哈希表——模拟散列表