这道题和 057 基本相似, 想法更加直接, 对start 进行排序,然后扫描一次并跟新返回的答案
class Solution: # @param {Interval[]} intervals # @return {Interval[]} def merge(self, intervals): ans = [] for i in sorted(intervals, key=lambda i:i.start): if ans and ans[-1].end >= i.start: ans[-1].end = max(ans[-1].end, i.end) else: ans.append(i) return ans
原文:http://www.cnblogs.com/dapanshe/p/4644471.html