Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions code@xukaixuan/demo56 merge-intervals/56.merge-intervals.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#
# @lc app=leetcode id=56 lang=python3
#
# [56] Merge Intervals
#
class Solution:
def merge(self, intervals: List[List[int]]) -> List[List[int]]:
ans = []
for invt in sorted(intervals,key = lambda x :x[0]):
if (ans and ans[-1][-1] >= invt[0]):
ans[-1][-1] = max(invt[-1],ans[-1][-1])
else:
ans.append(invt)
return ans




18 changes: 18 additions & 0 deletions code@xukaixuan/demo56 merge-intervals/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
## 56 Merge Intervals
### 题目描述
Given a collection of intervals, merge all overlapping intervals.
```
# example1
Input: [[1,3],[2,6],[8,10],[15,18]]
Output: [[1,6],[8,10],[15,18]]
Explanation: Since intervals [1,3] and [2,6] overlaps, merge them into [1,6].
```

```
Input: [[1,4],[4,5]]
Output: [[1,5]]
Explanation: Intervals [1,4] and [4,5] are considered overlapping.
```
### 考察知识点

排序 数组
16 changes: 16 additions & 0 deletions code@xukaixuan/demo57 insert-intervals/57.insert-interval.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
#
# @lc app=leetcode id=57 lang=python3
#
# [57] Insert Interval
#
class Solution:
def insert(self, intervals: List[List[int]], newInterval: List[int]) -> List[List[int]]:
s,e = newInterval[0],newInterval[-1]
left = [i for i in intervals if i[-1]<s]
right = [i for i in intervals if i[0]>e]
if left + right != intervals:
s = min(s,intervals[len(left)][0])
e = max(e,intervals[~len(right)][-1])
return left + [Interval(s,e)] +right


19 changes: 19 additions & 0 deletions code@xukaixuan/demo57 insert-intervals/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
## Insert Interval
### 考察知识点
排序
### description
Given a set of non-overlapping intervals, insert a new interval into the intervals (merge if necessary).

You may assume that the intervals were initially sorted according to their start times.

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].
```