Leetcode#56 Merge Intervals
2059 ワード
原題アドレス
ソート+マージ、何も言うことはありません
初めてC++のlambda表現を試して、jsを書く感じがして、不思議です.
c 11はlambda式をサポートしていますが、よく考えてみると、私がC++を学んだのは09~10年ぐらいで、c 11はまだ発表されていません.C++は当時とは大きく変わったと言わざるを得ません.
コード:
ソート+マージ、何も言うことはありません
初めて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 }