leetcode 每日一题 57. 插入区间
遍历添加
思路:
由于原数组有序,可以遍历把要添加区间之前的区间先加入到结果中,在判断要添加的区间是否能和之前合并,接着继续遍历之后区间,如果能合并就合并区间,不能合并直接添加。合并区间方法,参考56.合并区间
代码:
class Solution: def insert(self, intervals: List[List[int]], newInterval: List[int]) -> List[List[int]]: new_start, new_end = newInterval[0],newInterval[1] idx, n = 0, len(intervals) res = [] while idx < n and new_start > intervals[idx][0]: res.append(intervals[idx]) idx += 1 if not res or res[-1][1] < new_start: res.append(newInterval) else: res[-1][1] = max(res[-1][1], new_end) while idx < n: interval = intervals[idx] start, end = interval[0],interval[1] idx += 1 if res[-1][1] < start: res.append(interval) else: res[-1][1] = max(res[-1][1], end) return res