Skip to main content

56. 合并区间 [medium]

56. 合并区间 [medium]

https://leetcode-cn.com/problems/merge-intervals/

给出一个区间的集合,请合并所有重叠的区间。

示例 1:

输入: [[1,3],[2,6],[8,10],[15,18]]
输出: [[1,6],[8,10],[15,18]]
解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].

示例 2:

输入: [[1,4],[4,5]]
输出: [[1,5]]
解释: 区间 [1,4] 和 [4,5] 可被视为重叠区间。

通过次数111,801 | 提交次数262,085

First Try

2020-07-04

感觉太容易了,应该是easy级别的。 看题解,并没有把pre拿出来的操作,直接在seq列表里操作了,应该是我最近处理stack和queue有点多,都不习惯列表可以直接操作了。

class Solution(object):
def merge(self, intervals):
"""
:type intervals: List[List[int]]
:rtype: List[List[int]]
"""
intervals = sorted(intervals)
if not len(intervals):
return []
seq = [intervals[0]]
for ele in intervals[1:]:
pre = seq.pop()
if ele[0] <= pre[-1]:
pre = [pre[0], max(pre[1], ele[1])]
seq.append(pre)
else:
seq.append(pre)
seq.append(ele)
return seq

  • 执行用时:36 ms, 在所有 Python 提交中击败了54.50%的用户
  • 内存消耗:13.7 MB, 在所有 Python 提交中击败了100.00%的用户