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
    给出一组区间,请合并所有重叠的区间。
    请保证合并后的区间按区间起点升序排列

    解题思路:

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

  • 相关阅读:
    System 类的使用
    StringBuffer 与 StringBuilder类的使用
    String 类 的 使用
    多线程
    音乐播放
    数据库
    表示图编辑
    UITextView(2)
    UITextView
    tarBar
  • 原文地址:https://www.cnblogs.com/nenu/p/14677410.html
Copyright © 2011-2022 走看看