原题
https://leetcode.cn/problems/merge-intervals/description/
思路
排序 + 遍历
复杂度
时间:O(n)
空间:O(n)
Python代码
class Solution:
def merge(self, intervals: List[List[int]]) -> List[List[int]]:
ans = []
intervals.sort()
for i in range(len(intervals)):
# 可以合并
if i > 0 and intervals[i][0] <= ans[-1][1]:
ans[-1][1] = max(ans[-1][1], intervals[i][1])
else:
ans.append(intervals[i])
return ans
Go代码
func merge(intervals [][]int) [][]int {
var ans [][]int
sort.Slice(intervals, func(i, j int) bool {
return intervals[i][0] < intervals[j][0]
})
for i := 0; i < len(intervals); i++ {
// 可以合并
if i > 0 && intervals[i][0] <= ans[len(ans)-1][1] {
ans[len(ans)-1][1] = max(ans[len(ans)-1][1], intervals[i][1])
} else {
ans = append(ans, intervals[i])
}
}
return ans
}
297

被折叠的 条评论
为什么被折叠?



