您的位置:首页 > 其它

[Leetcode]Merge Intervals

2015-03-11 06:21 316 查看
Given a collection of intervals, merge all overlapping intervals.

For example,

Given 
[1,3],[2,6],[8,10],[15,18]
,

return 
[1,6],[8,10],[15,18]
.

要求合并若干个区间~记得先把intervals按start值排序~

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

class Solution:
# @param intervals, a list of Interval
# @return a list of Interval
def merge(self, intervals):
if intervals is None or len(intervals) == 0:
return []
intervals.sort(key = lambda x: x.start)
#intervals.sort(cmp = lambda x, y: cmp(x.start, y.start) or (x.start == y.start and cmp(x.end,y.end)))
res = []; prev = Start = End = None
for curr in intervals:
if prev:
if curr.start <= End:
End = max(End, curr.end)
else:
res.append([Start, End])
Start, End = curr.start, curr.end
else:
Start, End = curr.start, curr.end
prev = curr
res.append([Start, End])
return res
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: