您的位置:首页 > 编程语言 > Python开发

[Leetcode][python]Merge Intervals

2017-10-11 03:31 423 查看

题目大意

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

注意点:

所给的数据段是乱序的

解题思路

把起始位置(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


总结

代码内的匿名函数为何可以写成这样,可以参考:

http://wangwei007.blog.51cto.com/68019/1100742(最后一个例子)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode python