今天的每日一题不是自己想的,虽然理解了,但是感觉还是别人讲的更好,所以就随便打个卡了!
class Solution:
def insert(self, intervals: List[List[int]], newInterval: List[int]) -> List[List[int]]:
ans = []
done = False
left, right= newInterval
for x, y in intervals:
if x > right:
if not done:
ans.append([left, right])
done = True
ans.append([x, y])
elif y < left:
ans.append([x, y])
else:
left = min(left, x)
right = max(right, y)
if not done:
ans.append([left, right])
return ans
还是直接去题解吧,虽然今天很敷衍。
题解 https://leetcode-cn.com/problems/insert-interval/solution/cha-ru-qu-jian-by-leetcode-solution/
注意点:
-
2个区间的交集怎么取
-
done标志位是为了不漏掉数据
-
新区间有3种情况
分别落在已有区间的左侧 右侧和中间
网友评论