56. Merge Intervals(56. 合并区间
Given a collection of intervals, merge all overlapping intervals.
Example 1:
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].
Example 2:
Input: [[1,4],[4,5]] Output: [[1,5]] Explanation: Intervals [1,4] and [4,5] are considered overlapping.
class Solution: def merge(self, intervals: List[List[int]]) -> List[List[int]]: intervals = sorted(intervals,key=lambda x:x[0]) print(intervals) res = [intervals[0]] for ii in intervals[1:]: if ii[0] <= res[-1][1]: res[-1][1] = max(res[-1][1],ii[1]) else: res.append(ii) return res
class Solution { public: vector<vector<int>> merge(vector<vector<int>>& intervals) { sort(intervals.begin(),intervals.end()); int s = 0, f = 0; vector<vector<int>> res; res.emplace_back(intervals[0]); for(int f = 1; f < intervals.size();f++) { auto& cur_node = res.back(); if (intervals[f][0] <= cur_node[1]) { cur_node[1] = max(cur_node[1],intervals[f][1]); } else { res.emplace_back(intervals[f]); } } return res; } };