zoukankan      html  css  js  c++  java
  • 牛客网每日一练

    # 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 ):
            intervals = sorted(intervals,key=lambda x:x.start)
            res = [] #存储最后的结果
            i, n = 0, len(intervals)
            while i <= n - 1:
                l = intervals[i].start
                r = intervals[i].end
                while i < n-1 and r >= intervals[i+1].start:
                    i = i + 1
                    r = max(r, intervals[i].end)
                res.append(Interval(l, r))
                i = i+1
            return res
            # write code here
    给出一组区间,请合并所有重叠的区间。
    请保证合并后的区间按区间起点升序排列

    解题思路:

      对左边界排序,如果下一个区间的左边界在前一个的有边界内,考虑是否要更新边界,如果如果下一个区间的左边界在前一个的有边界外,说明区间无法合并,开始计算下一个区间

  • 相关阅读:
    Nginx Record
    Go 查找元素
    博客转移公告
    模板库
    模板库
    【BZOJ2276】Temperature
    【BZOJ3524】Couriers
    【BZOJ4458】GTY的OJ
    AtCoder Grand Contest 007
    Editing 2011-2012 ACM-ICPC Northeastern European Regional Contest (NEERC 11)
  • 原文地址:https://www.cnblogs.com/nenu/p/14677410.html
Copyright © 2011-2022 走看看