**
給你乙個區間列表,請你刪除列表中被其他區間所覆蓋的區間。
只有當 c <= a 且 b <= d 時,我們才認為區間 [a,b) 被區間 [c,d) 覆蓋。
在完成所有刪除操作後,請你返回列表中剩餘區間的數目。
示例:
輸入:intervals = [[1,4],[3,6],[2,8]]輸出:2 解釋:區間 [3,6] 被區間 [2,8]
覆蓋,所以它被刪除了。
1 <= intervals.length <= 1000獲得區間端點0 <= intervals[i][0] < intervals[i][1]<= 10^5
對於所有的 i != j:intervals[i] != intervals[j]
將各個區間按照左端點進行公升序排列,如果左端點相同的話按照右端點降序排列
原來的區間圖:
排序之後的區間圖:
3.根據排序之後的區間,保證後乙個區間如果右端點較大,那麼它一定不被在他之前的區間包含,以此比較右端點,若下乙個區間的右端點比較小,則其被包含,若不小,則不被包含,且當前右端點記錄值更換
public
static
intremovecoveredintervals
(int
intervals)})
;// 記錄區間數
int count =0;
// 記錄右區間最大點
int max_right =0;
for(
int[
] interval : intervals)
}return count;
}
**
看到這個題之後總覺得不會很難,確實,如果不將其進行排序,遍歷陣列,判斷當前區間是否被包含,就能確定最後剩餘的區間數,但是將其進行了排序之後時間複雜度為:o(nlogn)o(nlogn),
空間複雜度為:o(1)。既節省時間又節省空間的解決問題,這才是努力學習演算法的目的
排序 中等 1288 刪除被覆蓋區間
題目 給你乙個區間列表,請你刪除列表中被其他區間所覆蓋的區間。只有當 c a 且 b d 時,我們才認為區間 a,b 被區間 c,d 覆蓋。在完成所有刪除操作後,請你返回列表中剩餘區間的數目。示例 輸入 intervals 1,4 3,6 2,8 輸出 2 解釋 區間 3,6 被區間 2,8 覆蓋,...
二 刪除被覆蓋區間(Biweekly15)
題目描述 給你乙個區間列表,請你刪除列表中被其他區間所覆蓋的區間。只有當 c a 且 b d 時,我們才認為區間 a,b 被區間 c,d 覆蓋。在完成所有刪除操作後,請你返回列表中剩餘區間的數目。示例 輸入 intervals 1,4 3,6 2,8 輸出 2 解釋 區間 3,6 被區間 2,8 覆...
Leetcode刷題1288 刪除被覆蓋區間
給你乙個區間列表,請你刪除列表中被其他區間所覆蓋的區間。只有當 c a 且 b d 時,我們才認為區間 a,b 被區間 c,d 覆蓋。在完成所有刪除操作後,請你返回列表中剩餘區間的數目。示例 輸入 intervals 1,4 3,6 2,8 輸出 2 解釋 區間 3,6 被區間 2,8 覆蓋,所以它...