首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    leetcode-56. 合并区间

    合并区间就是将有重叠区间的两个区间合成一个。首选定义一个存放 int 类型数组的集合作为临时结果集,对传进来的二维数组进行判空,若传进来的 intervals 为空,则直接返回,由于结果集是临时的结果集,记得将一维数组的集合 toArray 成题目最终返回要求的二维数组。利用函数式编程,实现 Comparator 接口,对起点进行从小到大排序,跟 foreach 类似。   定义一个循环维护的变量,当 i 的值小于 intervals 中的集合个数时,进入循环,确保能遍历到最后一个区间,每次遍历都取出区间的左右端点,若当前区间的右端点比下一个区间的左端点还大,则说明区间有重叠,将当前右端点的值与下一个区间右端点的值进行比较,取较大的值作为新区间右端点,将新区间放入结果集中并接着判断下一个区间,最后返回最终结果集,将 List<int[]> 类型转换成 0 行 n 列的格式的数组类型返回即可。

    02

    LWC 59:731. My Calendar II

    该文讲述了如何实现一个具有查询任意两点是否时间重叠功能的日程安排类数据结构。这个数据结构中包含了多个区间,每个区间由开始时间和结束时间组成。在 MyCalendarTwo 类中,使用了一个 map 来存储已经预处理过的区间,并实现了 book 方法来对新加入的区间进行查询。查询过程中采用了两种方法:一是通过计算每个区间与已加入区间的交集来快速判断新加入区间与已加入区间是否存在时间重叠;二是通过计算新加入区间与已加入区间之间是否存在时间重叠来进行判断。该文还提供了两种思路,一种是使用积分的思路,将每个区间的开始时间和结束时间作为两个点,计算这些点与新区间的距离,并取最小值作为新区间的预估值;另一种是从前往后遍历所有已加入的区间,寻找能够与已加入区间相重叠的新区间,并对其进行处理。

    07
    领券