合併時間區間(時間複雜度 O n )

2021-10-04 11:13:39 字數 762 閱讀 7676

給定乙個按開始時間從小到大排序的時間區間集合,請將重疊的區間合併。時間區間集合用乙個二維陣列表示,二維陣列的每一行表示乙個時間區間(閉區間),其中 0 位置元素表示時間區間開始,1位置元素表示時間區間結束。

例 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]重疊了了乙個時間點,合併之後為 [1,5]

def sort(data):

if len(data) < 2:

return data

result =

del data[0]

for i in range(len(data)):

if data[i][0] >= result[-1][1]:

else:

if data[i][1] >= result[-1][1]:

result[-1][1] = data[i][1]

return result

# data = [[1, 3], [2, 6], [8, 10], [15, 18]]

# result = sort(data)

# print(result)

dfs時間複雜度 時間複雜度 空間複雜度

時間複雜度的數學證明方法相對比較複雜,通常在工程實際中,會分析就好。注意 只看最高複雜度的運算 int for for for for int遞迴如何分析時間複雜度?常數係數可以忽略,在分析時不用考慮,只要說以上術語即可。主定理 master throrem 上述第四種是歸併排序,所有排序演算法,最...

時間複雜度

乙個演算法執行所耗費的時間,從理論上是不能算出來的,必須上機執行測試才能知道。但我們不可能也沒有必要對每個演算法都上機測試,只需知道哪個演算法花費的時間多,哪個演算法花費的時間少就可以了。並且乙個演算法花費的時間與演算法中語句的執行次數 成正比例,哪個演算法中語句執行次數多,它花費時間就多。乙個演算...

時間複雜度

演算法複雜度是在 資料結構 這門課程的第一章裡出現的,因為它稍微涉及到一些數學問題,所以很多同學感覺很難,加上這個概念也不是那麼具體,更讓許多同學複習起來無從下手,下面我們就這個問題給各位考生進行分析。首先了解一下幾個概念。乙個是時間複雜度,乙個是漸近時間複雜度。前者是某個演算法的時間耗費,它是該演...