题解 | #合并区间#
合并区间
https://www.nowcoder.com/practice/69f4e5b7ad284a478777cb2a17fb5e6a
# class Interval: # def __init__(self, a=0, b=0): # self.start = a # self.end = b # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param intervals Interval类一维数组 # @return Interval类一维数组 # class Solution: def merge(self , intervals: List[Interval]) -> List[Interval]: # write code here L=[] i=0 intervals=(sorted(intervals,key=lambda x : x.start)) if len(intervals)==0: return L while i <= len(intervals)-1: #print(L) if i==len(intervals)-1: L.append(intervals[i]) i+=1 elif intervals[i].end <intervals[i+1].start: L.append(intervals[i]) print(intervals[i].start,intervals[i].end) i+=1 elif intervals[i+1].start<=intervals[i].end<=intervals[i+1].end: intervals[i+1].start=intervals[i].start i+=1 #print(intervals[i].start,intervals[i].end) elif intervals[i+1].start<=intervals[i].start<=intervals[i+1].end<=intervals[i].end: #intervals[i+1].start=intervals[i].start intervals[i+1].end=intervals[i].end i+=1 elif intervals[i].start<=intervals[i+1].start<=intervals[i+1].end<=intervals[i].end: intervals[i+1].end=intervals[i].end intervals[i+1].start=intervals[i].start i+=1 #elif intervals[i].end=intervals[i+1].start: # intervals[i+1].start=intervals[i].start # i+=1 else: pass return L
