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

代码随想录 435.无重叠区间

思路:这道题需要排序。按左边界排序或右边界排序都可以,主要目的是让区间尽可能的重叠。

(一)如果按照右边界排序,从左向右记录非交叉区间的个数,最后用区间总数减去非交叉区间的个数就是需要移除的区间个数。

记录非交叉区间个数的方法如下图所示:

区间1,2,3,4,5,6都按照右边界排好序。

(1)当确定区间1和区间2重叠后,如何确定是否与区间3也重叠呢?就是取区间1和区间2右边界的最小值,因为这个最小值之前的部分一定是区间1和区间2的重合部分,如果这个最小值也触达到区间3,那么说明区间1,2,3都是重合的。

(2)接下来就是找大于区间1结束位置的区间,是从区间4开始(因为是按照右边界排序)。

(3)区间4结束之后,再找区间6,所以一共记录非交叉区间的个数是3个。

(4)总共区间个数6个,减去非交叉区间的个数3,移除区间的最小数量就是3。

(二)如果按照左边界排序,就是直接求重叠的区间,count为记录重叠区间数。

附代码:

class Solution {public int eraseOverlapIntervals(int[][] intervals) {Arrays.sort(intervals,(a,b) -> {return Integer.compare(a[0],b[0]);});int count = 1;for(int i = 1;i < intervals.length;i ++){if(intervals[i - 1][1] > intervals[i][0]){intervals[i][1] = Math.min(intervals[i][1],intervals[i - 1][1]);continue;}else{count ++;}}return intervals.length - count;}
}

http://www.dtcms.com/a/606504.html

相关文章:

  • 【AVL树与红黑树】:告别“瘸腿”树,体验平衡的艺术
  • 智慧团建网站入口官网有什么做ppt的网站吗
  • 机器人“小脑”萎缩,何谈“大脑”智慧?六维力/关节力传感器才是“救命稻草”
  • 基于SpringBoot的图书馆管理系统的设计与实现
  • SpringCloud快速通关(中)
  • 性价比高的时序数据库哪个专业
  • 邵阳高端网站建设做响应式网站的物流
  • 网站定制开发哪家厉害网站登录界面源码
  • 自己电脑做网站服务器违法吗上海网站建设最好的公司排名
  • C++-vector-back子函数和std::move函数详细介绍
  • 07.指针
  • 【gas优化】2.9 使用sstore2或sstore3存储大量数据
  • 来宾北京网站建设网站浏览思路
  • 网站建设模式化的体现企业个人邮箱怎么注册
  • 分布式部署
  • 保障电网安全,赋能绿色能源:AM5SE-PV系列主从机防逆流保护装置在江西丰城曲江煤炭开发公司5.8MW分布式光伏项目的关键角色
  • C/C++ Linux网络编程3 - Socket编程与TCP服务器客户端
  • 镇江大港南站wordpress 新闻 通知
  • 【ZeroRange WebRTC】RFC 5389:STUN 协议规范(中文整理与译注)
  • 苏州网站制作及推广二手闲置平台网站怎么做
  • Unity零碎物体合并为一个整体mesh
  • 做响应式网站图片需要做几版在哪个网站找学做包子
  • 国内大型php网站建设商务网站开发背景
  • HarmonyOS开发-ArkWeb开发指导
  • kotlin:if、when语句介绍
  • 扩展函数练习题
  • Java后端常用技术选型 |(一)数据库篇
  • 婚纱摄影网站应该如何做优化室内装修设计软件下载
  • 从零开始写算法——二分-寻找旋转排序数组中的最小值
  • 一站式网站建设与运营简述网站开发平台及常用工具