[Leetcode]Merge Intervals
2015-03-11 06:21
316 查看
Given a collection of intervals, merge all overlapping intervals.
For example,
Given
return
要求合并若干个区间~记得先把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
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
相关文章推荐
- leetcode-056 Merge Intervals
- LeetCode-56-Merge Intervals Python自定义sort,贪心
- [LeetCode51]Merge Intervals
- LeetCode—Merge Intervals
- Leetcode-Merge Intervals
- 【Leetcode】Merge Intervals
- LeetCode 之 Merge Intervals — C++ 实现
- [LeetCode] Merge Intervals, Solution
- LeetCode 56 Merge Intervals
- LeetCode-56-Merge Intervals(C语言实现)
- [leetcode 56] Merge Intervals
- leetcode—Merge Intervals
- 【Leetcode】Merge Intervals
- LeetCode--Merge Intervals
- [LeetCode]Merge Intervals
- 【leetcode】 Merge Intervals
- LeetCode (Merge Intervals)
- [LeetCode] Merge Intervals
- [leetcode]Merge Intervals
- [Java]leetcode56 Merge Intervals