Merge Intervals
来源:互联网 发布:淘宝图片尺寸 编辑:程序博客网 时间:2024/09/21 08:19
/** * Definition for an interval. * struct Interval { * int start; * int end; * Interval() : start(0), end(0) {} * Interval(int s, int e) : start(s), end(e) {} * }; */ bool cmp(const Interval &x,const Interval &y){ if(x.start==y.start){ return x.end<y.end; }else return x.start<y.start; }class Solution {public: vector<Interval> merge(vector<Interval> &intervals) { // Start typing your C/C++ solution below // DO NOT write int main() function vector<Interval> vec; int len=intervals.size(); if(len<=1)return intervals; sort(intervals.begin(),intervals.end(),cmp); Interval tmp=intervals[0]; int start=tmp.start,end=tmp.end; for(int i=0;i<len;++i){ tmp=intervals[i]; if(tmp.start<=end){ end=max(end,tmp.end); }else{ Interval it(start,end); vec.push_back(it); start=tmp.start; end=tmp.end; } } Interval it(start,end); vec.push_back(it); return vec; }};