435. 无重叠区间 - 力扣(LeetCode)
思路:与上一题十分相似。
依然按照左边界从小到大对数组排序,初始化删除的区间数为0;
从1遍历数组:如果当前区间的左边界小于上一个区间的右边界,说明这两个区间重叠,res加1,并更新当前区间的右边界为这两个区间右边界中小的那个,进入下一次循环。
class Solution(object):
def eraseOverlapIntervals(self, intervals):
intervals.sort(key=lambda x:(x[0],x[1]))
print intervals
res=0
for i in range(1,len(intervals)):
if intervals[i][0]<intervals[i-1][1]:
res+=1
intervals[i][1]=min(intervals[i-1][1],intervals[i][1])
return res