mirror of
https://github.com/prdlk/leetcode.git
synced 2026-11-02 13:12:44 +00:00
docs(content): add 435 non‑overlapping intervals doc, condense meta, bump guide badges
This commit is contained in:
1 parent
e1c8f1a0f1
commit
c791974271
5 files changed
+57
-14
No files matched your search
@@ -1,8 +1,3 @@
|
||||
import { defineMeta } from "blume";
|
||||
|
||||
export default defineMeta({
|
||||
title: "Binary Search",
|
||||
order: 5,
|
||||
icon: "search",
|
||||
display: "group",
|
||||
});
|
||||
export default defineMeta({ title: "Binary Search", order: 5, icon: "search", display: "group" });
|
||||
@@ -1,8 +1,3 @@
|
||||
import { defineMeta } from "blume";
|
||||
|
||||
export default defineMeta({
|
||||
title: "Hash Table",
|
||||
order: 1,
|
||||
icon: "hash",
|
||||
display: "group",
|
||||
});
|
||||
export default defineMeta({ title: "Hash Table", order: 1, icon: "hash", display: "group" });
|
||||
@@ -0,0 +1,53 @@
|
||||
---
|
||||
title: '435. Non-overlapping Intervals'
|
||||
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
|
||||
icon: dot
|
||||
topics:
|
||||
- { name: "Array", slug: "array" }
|
||||
- { name: "Dynamic Programming", slug: "dynamic-programming" }
|
||||
- { name: "Greedy", slug: "greedy" }
|
||||
- { name: "Sorting", slug: "sorting" }
|
||||
sidebar:
|
||||
label: 'Non-overlapping Intervals'
|
||||
badge: 'Medium'
|
||||
---
|
||||
|
||||
### 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 <= 10^5`
|
||||
- `intervals[i].length == 2`
|
||||
- `-5 * 10^4 <= starti < endi <= 5 * 10^4`
|
||||
|
||||
## Solution
|
||||
|
||||
```py
|
||||
class Solution:
|
||||
def eraseOverlapIntervals(self, intervals: list[list[int]]) -> int:
|
||||
intervals.sort(key=lambda x: x[0])
|
||||
result = []
|
||||
|
||||
for start, end in intervals:
|
||||
# Use '<' to avoid intervals which touch
|
||||
if result and start < result[-1][1]:
|
||||
result[-1][1] = min(result[-1][1], end)
|
||||
else:
|
||||
result.append([start, end])
|
||||
|
||||
# Difference between original and result is to remove
|
||||
return len(intervals) - len(result)
|
||||
```
|
||||
@@ -3,7 +3,7 @@ title: "Array"
|
||||
list: "https://leetcode.com/problem-list/array/"
|
||||
icon: list-ordered
|
||||
sidebar:
|
||||
badge: '40'
|
||||
badge: '41'
|
||||
---
|
||||
|
||||
:::note
|
||||
|
||||
@@ -3,7 +3,7 @@ title: "Sorting"
|
||||
list: "https://leetcode.com/problem-list/sorting/"
|
||||
icon: arrow-down-wide-narrow
|
||||
sidebar:
|
||||
badge: '11'
|
||||
badge: '12'
|
||||
---
|
||||
|
||||
:::note
|
||||
|
||||
Reference in new issue
Block a user