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

基础算法——区间合并

目录大致如下: 排序(十大排序)——已经讲过 高精度算法 从0->1入门双指针 前缀和 二分 位运算 区间合并 何为区间合并?...区间合并,肯定是要有区间的,我们先来说什么是区间: 何为区间 区间一般有一个左端点一个右端点 我们可以使用一个结构体来定义,其中既包括左节点,也包括右节点 struct Interval {...int left, right; }; 区间合并 上面我们说明了什么是区间,接下来我们来说什么是区间合并, [[1,3],[2,6],[8,10],[15,18]] 合并为:[[1,6]...,[8,10],[15,18]] 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6] 也就是有交集的区间进行一个合并 区间左端点排序 start,end进行维护...维护区间2 } //情况2:两个区间可以合并,且区间1不包含区间2,区间2不包含区间1 else if(ed<num.second)

19030

合并区间,这么贪

合并区间 力扣题目链接:https://leetcode-cn.com/problems/merge-intervals 给出一个区间的集合,请合并所有重叠的区间。...那么我按照左边界排序,排序之后局部最优:每次合并都取最大的右边界,这样就可以合并更多的区间了,整体最优:合并所有重叠的区间。 局部最优可以推出全局最优,找不出反例,试试贪心。...这么说有点抽象,看图:(注意图中区间都是按照左边界排序之后了) 56.合并区间 知道如何判断重复之后,剩下的就是合并了,如何去模拟合并区间呢?...其实就是用合并区间后左边界和右边界,作为一个新的区间,加入到result数组里就可以了。如果没有合并就把原区间加入到result数组。...// 继续合并下一个区间 } // start和end是表示intervals[i - 1]的左边界右边界,所以最优intervals[i]区间是否合并了要标记一下

24630

【python-leetcode57-区间合并】插入区间

问题描述: 给出一个无重叠的 ,按照区间起始端点排序的区间列表。 在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。...intervals = [[1,2],[3,5],[6,7],[8,10],[12,16]], newInterval = [4,8] 输出: [[1,2],[3,10],[12,16]] 解释: 这是因为新的区间...有了之前leetcode56的思路,这就简单了,直接先将要插入的区间加入到intervals中,后面代码都是一样的。...再仔细看下题目,说了intervals是按区间端点进行排序的,因此,可以利用二分查找法查找该区间插入的位置。...注意要考虑特殊情况,当插入的区间端点大于被插入区间端点的最大值时,要返回len(intervals) ,即插入到被插入区间最后面。

58230
领券