定义
先找局部最优,然后推出全局最优
套路
这玩意没有套路
合并区间的解题思路
先按照左边界进行一个排序
区间的左边界小于等于上一个区间的右边界,则一定存在重叠,合并区间。
否则就是不重叠,直接将这个区间加入到结果列表中
PREP
这道题的核心在于排序以及如何判定两个区间是需要合并的;
首先把所有区间按照起点从小到大进行排序。
维护一个数组用于存储合并后的区间
然后遍历所有的区间
如果当前数组为空,则直接将这个区间append
否则拿当前区间和数组中最后一个合并区间进行对比,如果当前区间的起点小于等于上一个区间的终点,则证明他们是有重叠的。将他们进行合并
如果不是,则直接将该区间添加到数组中
综上,算法的瓶颈在于排序(如果区间无序,新区间可能和前面任意一个区间重叠,就需要和全部历史区间对比),时间复杂度是O(nlogn)。区间互不重叠的时候,空间复杂度是O(n)