频道栏目
首页 > 考试 > 其他 > 正文
python开发练习题:Merge Intervals
2017-10-11 09:22:16         来源:Rude3Knife的博客  
收藏   我要投稿

题目大意

给出多个数据区段,把首尾相连的数据段合并。

注意点:
所给的数据段是乱序的

解题思路

把起始位置(start)排序。遍历数据段,并与结果集中最后一个数据段比较能否合并,如果能合并就合并,否则加入结果集。

代码

# Definition for an interval.
# class Interval(object):
#     def __init__(self, s=0, e=0):
#         self.start = s
#         self.end = e

class Solution(object):
    def merge(self, intervals):
        """
        :type intervals: List[Interval]
        :rtype: List[Interval]
        """
        result = []
        if not intervals:
            return result
        intervals.sort(key = lambda x: x.start)
        result.append(intervals[0])
        for interval in intervals[1:]:
            prev = result[-1]
            if prev.end >= interval.start:
                prev.end = max(prev.end, interval.end)
            else:
                result.append(interval)
        return result

总结

intervals是一个自定义类,使用关键词start排序,可以这么高级的用么?网上我还没有找到很好的解释资料。可以研究下。

点击复制链接 与好友分享!回本站首页
上一篇:编程开发练习刷题记录
下一篇:编程开发练习题之旋转数组的最小数字
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站