leetcode 57 插入區間

2021-09-22 10:17:51 字數 1353 閱讀 5177

給出乙個無重疊的 ,按照區間起始端點排序的區間列表。

在列表中插入乙個新的區間,你需要確保列表中的區間仍然有序且不重疊(如果有必要的話,可以合併區間)。

示例 1:

輸入:intervals = [[1,3],[6,9]], newinterval = [2,5]輸出:[[1,5],[6,9]]
示例 2:

輸入:intervals = [[1,2],[3,5],[6,7],[8,10],[12,16]], newinterval = [4,8]輸出:[[1,2],[3,10],[12,16]]解釋:這是因為新的區間[4,8]與[3,5],[6,7],[8,10]重疊。
思路:把插入的區間新增進原來的區間集合,然後就是合併區間的問題,就和56題一樣了。

# leetcode 56

def merge(intervals):

if len(intervals)<1:

return intervals

ans=

intervals.sort()

for i in range(1,len(intervals)):

if ans[-1][1]ans[-1][1]:

ans[-1][1]=intervals[i][1]

return ans

leetcode 57

class solution:

def insert(self, intervals: list[list[int]], newinterval: list[int]) -> list[list[int]]:

# print(intervals)

intervals.sort()

# print(intervals)

ans = [intervals[0]]

for i in range(1,len(intervals)):

if intervals[i][0]>ans[-1][1]:

# 說明沒有重疊,不合併

elif intervals[i][1]>ans[-1][1]:

# 說明第乙個if沒有滿足,相鄰兩個元素已經比較過了3>2,判斷6>3即可

ans[-1][1] = intervals[i][1]

return ans

參考:

57. 插入區間(python)

LeetCode 57 插入區間

幾個注意點 1.原集合為空 2.插入在最開始的位置 3.插入在末尾位置 4.插入在中間 可以通過新增標誌,沒有新增就每次都去判斷重疊情況進行新增 vectorresult if intervals.size 0 bool isadd false for int i 0 i intervals.siz...

leetcode57 插入區間

給出乙個無重疊的 按照區間起始端點排序的區間列表。在列表中插入乙個新的區間,你需要確保列表中的區間仍然有序且不重疊 如果有必要的話,可以合併區間 示例 1 輸入 intervals 1,3 6,9 newinterval 2,5 輸出 1,5 6,9 示例 2 輸入 intervals 1,2 3,...

Leetcode 57 插入區間

給出乙個無重疊的 按照區間起始端點排序的區間列表。在列表中插入乙個新的區間,你需要確保列表中的區間仍然有序且不重疊 如果有必要的話,可以合併區間 示例 1 輸入 intervals 1,3 6,9 newinterval 2,5 輸出 1,5 6,9 示例 2 輸入 intervals 1,2 3,...