题解 | #合并区间#

合并区间

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

全部评论

相关推荐

12-15 11:27
门头沟学院 Java
哇哇的菜鸡oc:所有人不要理会,就好了,后面他就知道怎么回事了,只能说有的时候市场都是被宰的人搞坏的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务