付費限定

排序應用題: 不重複的區間 Non-overlapping Intervals_Leetcode #435_精選75題

閱讀時間約 3 分鐘

題目敘述

題目會給定一個輸入陣列intervals,陣列元素都是一組pair,
intervals[i] = [starti, endi],分別代表區間的起點,和區間的終點。

請問我們最少要刪除幾個區間,才能讓剩下的區間彼此都不重疊?


題目的原文敘述


測試範例

Example 1:

Input: intervals = [[1,2],[2,3],[3,4],[1,3]]
Output: 1
Explanation: [1,3] can be removed and the rest of the intervals are non-overlapping.
移除[1,3]可以讓剩下的區間都不重疊。​

Example 2:

Input: intervals = [[1,2],[1,2],[1,2]]
Output: 2
Explanation: You need to remove two [1,2] to make the rest of the intervals non-overlapping.
移除多出來的兩個[1,2]可以讓剩下的區間都不重疊。

Example 3:

Input: intervals = [[1,2],[2,3]]
Output: 0
Explanation: You don't need to remove any of the intervals since they're already non-overlapping.
不需要移除,原本的區間已經都不重疊。

約束條件

Constraints:

  • 1 <= intervals.length <= 10^5

輸入陣列長度介於1~十萬之間。

  • intervals[i].length == 2

每個陣列元素都是一組Pair

  • -5 * 10^4 <= starti < endi <= 5 * 10^4

起點、終點介於 負五萬~正五萬之間。


演算法 Greedy + 排序

想要讓所有區間都不重疊,可以想到先讓所有區間都依終點的大小作排序。

接下來,從左到右檢查每個區間,假如當下這個區間的起點比前面區間的終點還小,代表有重疊,必須刪除,依此類推,掃描並且檢查所有區間。


示意圖

image.png

image.png


以行動支持創作者!付費即可解鎖
本篇內容共 1581 字、1 則留言,僅發佈於Leetcode精選75題 解析+統整你目前無法檢視以下內容,可能因為尚未登入,或沒有該房間的查看權限。
84會員
425內容數
由有業界實戰經驗的演算法工程師, 手把手教你建立解題的框架, 一步步寫出高效、清晰易懂的解題答案。 著重在讓讀者啟發思考、理解演算法,熟悉常見的演算法模板。 深入淺出地介紹題目背後所使用的演算法意義,融會貫通演算法與資料結構的應用。 在幾個經典的題目融入一道題目的多種解法,或者同一招解不同的題目,擴展廣度,並加深印象。
留言0
查看全部
發表第一個留言支持創作者!
題目敘述 題目會給我們一個StockSpanner類別, 還有對應的建構子和function: int next( int price)介面。 next(int price)呼叫的時後回傳入當天的股票價格,要求我們計算price這個價格是過去k天以來的最高價,返回k值。 舉例來說: 若股價分
題目會給定一個輸入陣列temperatures ,分別代表每一天的溫度。 請計算每一天還要再過幾天才會遇到更溫暖的日子,如果遇不到,則回填0。 請以陣列的形式返回答案。 題目的原文敘述 約束條件 Constraints: 1 <= temperatures.length <= 10^
題目敘述 給定兩個字串word1和word2,每次操作時,可以有三個選項 插入一個字元 刪除一個字元 替換一個字元 請問把word1轉換成word2的最小操作次數是多少? 題目的原文敘述 約束條件 Constraints: 0 <= word1.length, word2.le
題目敘述 題目會給我們兩種無限量供應的骨牌Domino 和 Tromino,形狀分別如下 題目的輸入會有一個參數n。 可以任意旋轉方向進行拼接,請問最後拼成 2 x n 長方形區域的方法數有幾種? 例如 n = 3 時,拼成2 x 3 的長方形區域有五種方法。 題目的原文敘述
題目敘述 題目會給我們一個大樓陣列heights,裡面分別記錄每一棟大樓的高度。還有參數bricks代表可用的磚塊數目,和 ladders代表可用的伸縮爬梯數目。 一開始從最左邊的大樓頂樓開始出發。 假如下一棟比現在這棟大樓還矮,或者一樣高,則我們可以直接抵達下一棟。 假如下一棟比現在
題目敘述 題目會給我們一個陣列prices,裡面的數值代表每一個交易日的股票股價。 每次買入股票時會有一個額外附帶的交易成本fee。 題目讓我們做多,而且不限制交易次數。 題目禁止持有多重部位,也就是說,必須是買賣輪流交替的形式。 比如說 買,買,買 這種方式是不被允許的。 請問最終
題目敘述 題目會給我們一個StockSpanner類別, 還有對應的建構子和function: int next( int price)介面。 next(int price)呼叫的時後回傳入當天的股票價格,要求我們計算price這個價格是過去k天以來的最高價,返回k值。 舉例來說: 若股價分
題目會給定一個輸入陣列temperatures ,分別代表每一天的溫度。 請計算每一天還要再過幾天才會遇到更溫暖的日子,如果遇不到,則回填0。 請以陣列的形式返回答案。 題目的原文敘述 約束條件 Constraints: 1 <= temperatures.length <= 10^
題目敘述 給定兩個字串word1和word2,每次操作時,可以有三個選項 插入一個字元 刪除一個字元 替換一個字元 請問把word1轉換成word2的最小操作次數是多少? 題目的原文敘述 約束條件 Constraints: 0 <= word1.length, word2.le
題目敘述 題目會給我們兩種無限量供應的骨牌Domino 和 Tromino,形狀分別如下 題目的輸入會有一個參數n。 可以任意旋轉方向進行拼接,請問最後拼成 2 x n 長方形區域的方法數有幾種? 例如 n = 3 時,拼成2 x 3 的長方形區域有五種方法。 題目的原文敘述
題目敘述 題目會給我們一個大樓陣列heights,裡面分別記錄每一棟大樓的高度。還有參數bricks代表可用的磚塊數目,和 ladders代表可用的伸縮爬梯數目。 一開始從最左邊的大樓頂樓開始出發。 假如下一棟比現在這棟大樓還矮,或者一樣高,則我們可以直接抵達下一棟。 假如下一棟比現在
題目敘述 題目會給我們一個陣列prices,裡面的數值代表每一個交易日的股票股價。 每次買入股票時會有一個額外附帶的交易成本fee。 題目讓我們做多,而且不限制交易次數。 題目禁止持有多重部位,也就是說,必須是買賣輪流交替的形式。 比如說 買,買,買 這種方式是不被允許的。 請問最終
你可能也想看
Google News 追蹤
Thumbnail
孩子要能夠勝任圖卡排序這樣的活動,大概需要具備觀察力、認知能力、生活中步驟性的活動經驗…。我最近也在想,會不會跟孩子較少進行多步驟的家事、較少觀看具有順序情節的影片有關係咧?
Thumbnail
排序是EXCEL一個相當基礎且實用的功能,就是可以幫助我們將數據由大小小排列,或是資料快速分類排序。 但排序根據使用的方式不同其實有三種隱藏的功能,可以快速解決職場工作上特定的疑難雜症 先描述一下三種問題,操作方法在文章後面的影片中 💡第一種-移除資料空白列 資料中若有很多空白列想
Thumbnail
撰寫日期:2023.08.02 作者:FAHAHA|翁順法 邏輯有兩個面向,一個是分類,一個是排序。 分類就是將多個重點歸納成 3~5 類,降低聽眾的認知負荷;排序,則是安排重點的先後順序,一步步引導聽眾進入結論。 排序做得好,聽你簡報就像在聽故事一樣有沈浸感。 怎麼排序呢?
Thumbnail
EXCEL中排序是一個基礎的功能,今天要分享利用函數將數據遞增遞減排序。 需要用到的函數有4個: ✍🏾ROW回傳當前或參照列號 函數說明=ROW(參照) ✍🏾SMALL找出第幾小的數值 函數說明=SMALL(範圍,範圍內第幾小) ✍🏾LARGE找出第幾大的數值 函數說明=SMALL(範
Thumbnail
MongoDB 在排序時會將資料全部載入記憶體,之後在記憶體中進行排序,而預設開放給排序的記憶體只有 32 MB,因此在大量資料排序時就會引發該錯誤。
Thumbnail
哪種公司的股價上漲較快? 想知道答案,我們可以借用排序法來觀察。
Thumbnail
一者才華傑出,卻因而受到「創作」的綑綁;另者揮灑自如,卻始終見不得光。他們相遇,沒有太多的浪漫,只有面對語言時的熱情,以及那被激起的火花。
Thumbnail
相反的,如果我有真心想完成的任何事,就必得徵求身體的同意。徵求身體同意的手法,不外乎在意生活作息、照顧身體需求、不能過度勉強及輸出,懂得節制及花許多時間保養。這樣想想,身體倒是很公平的。當我忽略這些時,身體就罷工抗議。
Thumbnail
孩子要能夠勝任圖卡排序這樣的活動,大概需要具備觀察力、認知能力、生活中步驟性的活動經驗…。我最近也在想,會不會跟孩子較少進行多步驟的家事、較少觀看具有順序情節的影片有關係咧?
Thumbnail
排序是EXCEL一個相當基礎且實用的功能,就是可以幫助我們將數據由大小小排列,或是資料快速分類排序。 但排序根據使用的方式不同其實有三種隱藏的功能,可以快速解決職場工作上特定的疑難雜症 先描述一下三種問題,操作方法在文章後面的影片中 💡第一種-移除資料空白列 資料中若有很多空白列想
Thumbnail
撰寫日期:2023.08.02 作者:FAHAHA|翁順法 邏輯有兩個面向,一個是分類,一個是排序。 分類就是將多個重點歸納成 3~5 類,降低聽眾的認知負荷;排序,則是安排重點的先後順序,一步步引導聽眾進入結論。 排序做得好,聽你簡報就像在聽故事一樣有沈浸感。 怎麼排序呢?
Thumbnail
EXCEL中排序是一個基礎的功能,今天要分享利用函數將數據遞增遞減排序。 需要用到的函數有4個: ✍🏾ROW回傳當前或參照列號 函數說明=ROW(參照) ✍🏾SMALL找出第幾小的數值 函數說明=SMALL(範圍,範圍內第幾小) ✍🏾LARGE找出第幾大的數值 函數說明=SMALL(範
Thumbnail
MongoDB 在排序時會將資料全部載入記憶體,之後在記憶體中進行排序,而預設開放給排序的記憶體只有 32 MB,因此在大量資料排序時就會引發該錯誤。
Thumbnail
哪種公司的股價上漲較快? 想知道答案,我們可以借用排序法來觀察。
Thumbnail
一者才華傑出,卻因而受到「創作」的綑綁;另者揮灑自如,卻始終見不得光。他們相遇,沒有太多的浪漫,只有面對語言時的熱情,以及那被激起的火花。
Thumbnail
相反的,如果我有真心想完成的任何事,就必得徵求身體的同意。徵求身體同意的手法,不外乎在意生活作息、照顧身體需求、不能過度勉強及輸出,懂得節制及花許多時間保養。這樣想想,身體倒是很公平的。當我忽略這些時,身體就罷工抗議。