在 Python 中查詢相交區間
假設我們有一個區間列表,其中每個區間都像 [開始,結束] 這樣表示區間的開始和結束時間(包含),我們需要找到它們的交集,即位於所有給定區間內的區間。
因此,如果輸入類似於 [[10, 110],[20, 60],[25, 75]],則輸出將為 [25, 60]
為了解決這個問題,我們將遵循以下步驟:
- start,end := 從區間列表中刪除最後一個元素後的區間
- 當 intervals 不為空時,執行以下操作
- start_temp,end_temp := 從區間列表中刪除最後一個元素後的區間
- start := start 和 start_temp 的最大值
- end := end 和 end_temp 的最小值
- 返回一個區間 [start, end]
讓我們看看下面的實現以更好地理解:
示例
class Solution: def solve(self, intervals): start, end = intervals.pop() while intervals: start_temp, end_temp = intervals.pop() start = max(start, start_temp) end = min(end, end_temp) return [start, end] ob = Solution() intervals = [[10, 110],[20, 60],[25, 75]] print(ob.solve(intervals))
輸入
[[10, 110],[20, 60],[25, 75]]
輸出
[25, 60]
廣告