mirror of
https://github.com/prdlk/leetcode.git
synced 2026-11-04 13:37:43 +00:00
docs(content): add Insert Interval page, expand intervals guide, and update array badge
This commit is contained in:
1 parent
b710c777c3
commit
34b944d32d
4 files changed
+184
-8
No files matched your search
@@ -0,0 +1,56 @@
|
||||
---
|
||||
title: '57. Insert Interval'
|
||||
description: You are given an array of non-overlapping intervals intervals where intervals[i] = [starti, endi] represent the start and the end of the i^th interval and intervals is sorted in ascending order by starti. You are also given an interval newInterval = [start, end] that represents the start and end of another interval
|
||||
icon: dot
|
||||
topics:
|
||||
- { name: "Array", slug: "array" }
|
||||
sidebar:
|
||||
label: 'Insert Interval'
|
||||
badge: 'Medium'
|
||||
---
|
||||
|
||||
### Example 1:
|
||||
- Input: `intervals = [[1,3],[6,9]], newInterval = [2,5]`
|
||||
- Output: `[[1,5],[6,9]]`
|
||||
|
||||
### Example 2:
|
||||
- Input: `intervals = [[1,2],[3,5],[6,7],[8,10],[12,16]], newInterval = [4,8]`
|
||||
- Output: `[[1,2],[3,10],[12,16]]`
|
||||
- Explanation: Because the new interval `[4,8]` overlaps with [3,5],[6,7],[8,10].
|
||||
|
||||
### Constraints:
|
||||
|
||||
- `0 <= intervals.length <= 10^4`
|
||||
- `intervals[i].length == 2`
|
||||
- `0 <= starti <= endi <= 10^5`
|
||||
- intervals is sorted by starti in ascending order.
|
||||
- `newInterval.length == 2`
|
||||
- `0 <= start <= end <= 10^5`
|
||||
|
||||
## Solution
|
||||
|
||||
```py
|
||||
class Solution:
|
||||
def insert(
|
||||
self, intervals: list[list[int]], newInterval: list[int]
|
||||
) -> list[list[int]]:
|
||||
result = []
|
||||
i, n = 0, len(intervals)
|
||||
start, end = newInterval
|
||||
|
||||
# Everything before
|
||||
while i < n and intervals[i][1] < start:
|
||||
result.append(intervals[i])
|
||||
i += 1
|
||||
|
||||
# Everything merged
|
||||
while i < n and intervals[i][0] <= end:
|
||||
start = min(start, intervals[i][0])
|
||||
end = max(end, intervals[i][1])
|
||||
i += 1
|
||||
result.append([start, end])
|
||||
|
||||
# Everything after
|
||||
result.extend(intervals[i:])
|
||||
return result
|
||||
```
|
||||
Reference in new issue
Block a user