leetcode56. Merge Intervals【贪心】

xiaoxiao2025-05-23  26

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 considerred overlapping.

顾名思义,合并间隔

那么先排序,维护开头位置s,和递推当前最大能到的位置e

感觉和上一个题差不多

bool cmp(Interval x,Interval y){return (x.start<y.start);} class Solution { public: vector<Interval> merge(vector<Interval>& intervals) { int n=intervals.size(); sort(intervals.begin(),intervals.end(),cmp); vector<Interval> ans; if(n==0) return ans; int maxn=0,s=intervals[0].start,e=intervals[0].end; for(int i=1;i<n;i++){ if(intervals[i].start<=e) e=max(e,intervals[i].end); else{ ans.push_back(Interval(s,e)); s=intervals[i].start; e=intervals[i].end; } } ans.push_back(Interval(s,e)); return ans; } };

 

转载请注明原文地址: https://www.6miu.com/read-5030559.html

最新回复(0)