From 9b4f1cf5886b416cb304409f0e156d63e1eed9ce Mon Sep 17 00:00:00 2001 From: Antim Pal <134076504+iamAntimPal@users.noreply.github.com> Date: Tue, 15 Apr 2025 07:10:44 +0530 Subject: [PATCH 1/5] Create 435. Non-overlapping Intervals.py Co-Authored-By: Antim-IWP <203163676+Antim-IWP@users.noreply.github.com> Co-Authored-By: Shiwangi Srivastava <174641070+IamShiwangi@users.noreply.github.com> --- .../435. Non-overlapping Intervals.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 Solution/435. Non-overlapping Intervals/435. Non-overlapping Intervals.py diff --git a/Solution/435. Non-overlapping Intervals/435. Non-overlapping Intervals.py b/Solution/435. Non-overlapping Intervals/435. Non-overlapping Intervals.py new file mode 100644 index 0000000..e69de29 From 4e5dba13fe4993c5b25d7da57c0169955f0ec242 Mon Sep 17 00:00:00 2001 From: Antim Pal <134076504+iamAntimPal@users.noreply.github.com> Date: Tue, 15 Apr 2025 07:10:56 +0530 Subject: [PATCH 2/5] Update 435. Non-overlapping Intervals.py Co-Authored-By: Antim-IWP <203163676+Antim-IWP@users.noreply.github.com> Co-Authored-By: Shiwangi Srivastava <174641070+IamShiwangi@users.noreply.github.com> --- .../435. Non-overlapping Intervals.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/Solution/435. Non-overlapping Intervals/435. Non-overlapping Intervals.py b/Solution/435. Non-overlapping Intervals/435. Non-overlapping Intervals.py index e69de29..c5fd2fa 100644 --- a/Solution/435. Non-overlapping Intervals/435. Non-overlapping Intervals.py +++ b/Solution/435. Non-overlapping Intervals/435. Non-overlapping Intervals.py @@ -0,0 +1,10 @@ +class Solution: + def eraseOverlapIntervals(self, intervals: List[List[int]]) -> int: + intervals.sort(key=lambda x: x[1]) + ans = len(intervals) + pre = -inf + for l, r in intervals: + if pre <= l: + ans -= 1 + pre = r + return ans \ No newline at end of file From cc74480100e5b83b3b8225f4a27df937d4519a53 Mon Sep 17 00:00:00 2001 From: Antim Pal <134076504+iamAntimPal@users.noreply.github.com> Date: Tue, 15 Apr 2025 07:11:16 +0530 Subject: [PATCH 3/5] Create readme.md Co-Authored-By: Antim-IWP <203163676+Antim-IWP@users.noreply.github.com> Co-Authored-By: Shiwangi Srivastava <174641070+IamShiwangi@users.noreply.github.com> --- Solution/435. Non-overlapping Intervals/readme.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 Solution/435. Non-overlapping Intervals/readme.md diff --git a/Solution/435. Non-overlapping Intervals/readme.md b/Solution/435. Non-overlapping Intervals/readme.md new file mode 100644 index 0000000..e69de29 From 47af6aade42f8baf8482e0370deaaebdc599077d Mon Sep 17 00:00:00 2001 From: Antim Pal <134076504+iamAntimPal@users.noreply.github.com> Date: Tue, 15 Apr 2025 07:11:21 +0530 Subject: [PATCH 4/5] Update readme.md Co-Authored-By: Antim-IWP <203163676+Antim-IWP@users.noreply.github.com> Co-Authored-By: Shiwangi Srivastava <174641070+IamShiwangi@users.noreply.github.com> --- .../435. Non-overlapping Intervals/readme.md | 179 ++++++++++++++++++ 1 file changed, 179 insertions(+) diff --git a/Solution/435. Non-overlapping Intervals/readme.md b/Solution/435. Non-overlapping Intervals/readme.md index e69de29..a88b82f 100644 --- a/Solution/435. Non-overlapping Intervals/readme.md +++ b/Solution/435. Non-overlapping Intervals/readme.md @@ -0,0 +1,179 @@ +--- +comments: true +difficulty: Medium +edit_url: https://github.com/doocs/leetcode/edit/main/solution/0400-0499/0435.Non-overlapping%20Intervals/README_EN.md +tags: + - Greedy + - Array + - Dynamic Programming + - Sorting +--- + + + +# [435. Non-overlapping Intervals](https://leetcode.com/problems/non-overlapping-intervals) + +[中文文档](/solution/0400-0499/0435.Non-overlapping%20Intervals/README.md) + +## Description + + + +
Given an array of intervals intervals where intervals[i] = [starti, endi], 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:
+ ++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. ++ +
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. ++ +
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 <= 105intervals[i].length == 2-5 * 104 <= starti < endi <= 5 * 104