Leetcode 56. Merge Intervals
2018-11-27 本文已影响0人
woniudear
题目很简单,要求把重叠的区间合起来。自己做这道题主要复习了python的sort以及lambda。
sort在原list上面进行改动,可以使用list.sort(key=..., reverse=...)或者sorted(list, key=..., reverse=...),其中key用来自定义如何排序,reverse=True的时候从大到小排列。
lambda的格式为 lambda x: x+5 相当于不用写函数名,x是自变量,返回x+5的值。
Input: [[1,3],[2,6],[8,10],[15,18]]
Output: [[1,6],[8,10],[15,18]]
python代码:
class Solution:
def merge(self, intervals):
"""
:type intervals: List[Interval]
:rtype: List[Interval]
"""
if not intervals or len(intervals) == 1:
return intervals
intervals.sort(key=lambda item:item.start)
res = []
for interval in intervals:
if not res:
res.append(interval)
else:
if res[-1].end >= interval.start:
res[-1].end = max(res[-1].end, interval.end)
else:
res.append(interval)
return res