diff --git a/code@xukaixuan/demo56 merge-intervals/56.merge-intervals.py b/code@xukaixuan/demo56 merge-intervals/56.merge-intervals.py new file mode 100644 index 0000000..28efe52 --- /dev/null +++ b/code@xukaixuan/demo56 merge-intervals/56.merge-intervals.py @@ -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 + + + + diff --git a/code@xukaixuan/demo56 merge-intervals/readme.md b/code@xukaixuan/demo56 merge-intervals/readme.md new file mode 100644 index 0000000..e659a66 --- /dev/null +++ b/code@xukaixuan/demo56 merge-intervals/readme.md @@ -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. +``` +### 考察知识点 + +排序 数组 \ No newline at end of file diff --git a/code@xukaixuan/demo57 insert-intervals/57.insert-interval.py b/code@xukaixuan/demo57 insert-intervals/57.insert-interval.py new file mode 100644 index 0000000..c4b89c6 --- /dev/null +++ b/code@xukaixuan/demo57 insert-intervals/57.insert-interval.py @@ -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]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 + + diff --git a/code@xukaixuan/demo57 insert-intervals/readme.md b/code@xukaixuan/demo57 insert-intervals/readme.md new file mode 100644 index 0000000..a799187 --- /dev/null +++ b/code@xukaixuan/demo57 insert-intervals/readme.md @@ -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]. +``` \ No newline at end of file