版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/welcom_/article/details/84398295
刚开始的时候看错题了,看成求最小区间,不过方向没有偏
本题还在greedy目录下,具体看注释。
# 757. Set Intersection Size At Least Two
#
# 一次遍历,覆盖所有
class Solution:
def intersectionSizeTwo(self, intervals):
"""
:type intervals: List[List[int]]
:rtype: int
"""
# 如果排序了的话,会减少许多不必要的步骤
intervals.sort(key=lambda x:x[1])
# s 为集合,进行初始化
s=[intervals[0][1]-1,intervals[0][1]]
for x in intervals:
# 集合满足条件
if x[0]<=s[-2]:
continue
# 集合少2个,所以要增加该区间最大的2个
if x[0]>s[-1]:
s.append(x[1]-1)
# 少一个,增加最大的一个
s.append(x[1])
return len(s)