Leetcode#56 Merge Intervals

2059 ワード

原題アドレス
 
ソート+マージ、何も言うことはありません
初めてC++のlambda表現を試して、jsを書く感じがして、不思議です.
c 11はlambda式をサポートしていますが、よく考えてみると、私がC++を学んだのは09~10年ぐらいで、c 11はまだ発表されていません.C++は当時とは大きく変わったと言わざるを得ません.
 
コード:
 1 vector<Interval> merge(vector<Interval> &intervals) {

 2   vector<Interval> result;

 3 

 4   sort(intervals.begin(), intervals.end(), [](Interval a, Interval b) {

 5       return a.start < b.start || (a.start == b.start && a.end < b.end);

 6   });

 7 

 8   for (auto itv : intervals) {

 9     if (result.empty() || result.back().end < itv.start)

10       result.push_back(itv);

11     else

12       result.back().end = max(result.back().end, itv.end);

13   }

14 

15   return result;

16 }