給定乙個按開始時間從小到大排序的時間區間集合,請將重疊的區間合併。時間區間集合用乙個二維陣列表示,二維陣列的每一行表示乙個時間區間(閉區間),其中 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 上述第四種是歸併排序,所有排序演算法,最...
時間複雜度
乙個演算法執行所耗費的時間,從理論上是不能算出來的,必須上機執行測試才能知道。但我們不可能也沒有必要對每個演算法都上機測試,只需知道哪個演算法花費的時間多,哪個演算法花費的時間少就可以了。並且乙個演算法花費的時間與演算法中語句的執行次數 成正比例,哪個演算法中語句執行次數多,它花費時間就多。乙個演算...
時間複雜度
演算法複雜度是在 資料結構 這門課程的第一章裡出現的,因為它稍微涉及到一些數學問題,所以很多同學感覺很難,加上這個概念也不是那麼具體,更讓許多同學複習起來無從下手,下面我們就這個問題給各位考生進行分析。首先了解一下幾個概念。乙個是時間複雜度,乙個是漸近時間複雜度。前者是某個演算法的時間耗費,它是該演...