Python 中合併區間並按升序排列的程式
假設我們有一個列表間隔,即我們要找到它們的並集,並按排序順序排列。
所以,如果輸入像 inv = [[2, 5],[4, 10],[20, 25]], 那麼輸出將為 [[2, 10], [20, 25]]
為了解決這個問題,我們將遵循以下步驟 -
- 對間隔列表進行排序
- ans := 一個新列表
- 對於間隔列表中的每個開始時間和結束時間 (s, e),執行以下操作
- 如果 ans 不為空且 s <= ans 的最後一個間隔的結束時間,那麼
- ans 的最後一個間隔的結束時間 := e 和 ans 的最後一個間隔的結束時間的最大值
- 其他情況下,
- 將區間 [s, e] 插入到 ans 中
- 如果 ans 不為空且 s <= ans 的最後一個間隔的結束時間,那麼
- 返回 ans
讓我們看看以下實現以便更好地理解 -
示例
class Solution: def solve(self, intervals): intervals.sort() ans = [] for s, e in intervals: if ans and s <= ans[-1][1]: ans[-1][1] = max(ans[-1][1], e) else: ans.append([s, e]) return ans ob = Solution() inv = [[2, 5],[4, 10],[20, 25]] print(ob.solve(inv))
輸入
[[2, 5],[4, 10],[20, 25]]
輸出
[[2, 10], [20, 25]]
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP