#+ANKI_DECK: study_deck_02 * TODO 0435. Non Overlapping Intervals :medium: :PROPERTIES: :NEETCODE: [[file:../../roadmap.org::*0435. Non Overlapping Intervals][0435. Non Overlapping Intervals]] :END: Given an array of intervals ~intervals~ where ~intervals[i] = [start_{i}, end_{i}]~, return /the minimum number of intervals you need to remove to make the rest of the intervals non-overlapping/. *Note* that intervals which only touch at a point are *non-overlapping*. For example, ~[1, 2]~ and ~[2, 3]~ are non-overlapping. *Example 1:* #+begin_src 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. #+end_src *Example 2:* #+begin_src 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. #+end_src *Example 3:* #+begin_src 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. #+end_src *Constraints:* - ~1 <= intervals.length <= 10^{5}~ - ~intervals[i].length == 2~ - ~-5 * 10^{4} <= start_{i} < end_{i} <= 5 * 10^{4}~ ** TODO Approach Write your approach here. ** TODO Python #+begin_src python class Solution: def eraseOverlapIntervals(self, intervals: List[List[int]]) -> int: #+end_src ** TODO C++ #+begin_src cpp class Solution { public: int eraseOverlapIntervals(vector>& intervals) { } }; #+end_src