天天看點

LeetCode 435. Non-overlapping Intervals

作者:Grey

原文位址:LeetCode 435. Non-overlapping Intervals

題目連結

題目要求至少移除多少個線段可以保證線段不出現重疊區域,比如以下情況:

LeetCode 435. Non-overlapping Intervals

我們至少需要移走四條線段才能讓剩餘線段不重疊。移動後的線段如下圖

LeetCode 435. Non-overlapping Intervals

我們可以反過來考慮,即求所有非重疊區域的個數,假設是M,線段數量假設是N,那麼<code>N-M</code>即為需要移除的線段數量。

主要流程如下,先把所有線段按結尾位置排序,結尾小的排前面,結尾大的排後面。

然後周遊每個線段,如果線段的開始位置超過了前一個線段的結尾位置,說明這兩個線段是非重疊的,非重疊個數加1,周遊完畢,用所有線段個數減去非重疊個數,即為需要移除的線段個數。

算法和資料結構筆記

繼續閱讀