作者:Grey
原文位址:LeetCode 435. Non-overlapping Intervals
題目連結
題目要求至少移除多少個線段可以保證線段不出現重疊區域,比如以下情況:

我們至少需要移走四條線段才能讓剩餘線段不重疊。移動後的線段如下圖
我們可以反過來考慮,即求所有非重疊區域的個數,假設是M,線段數量假設是N,那麼<code>N-M</code>即為需要移除的線段數量。
主要流程如下,先把所有線段按結尾位置排序,結尾小的排前面,結尾大的排後面。
然後周遊每個線段,如果線段的開始位置超過了前一個線段的結尾位置,說明這兩個線段是非重疊的,非重疊個數加1,周遊完畢,用所有線段個數減去非重疊個數,即為需要移除的線段個數。
算法和資料結構筆記