[LeetCode] Merge Intervals

来源:互联网 发布:php pre match 编辑:程序博客网 时间:2024/05/16 07:10
/** * 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 compare(const Interval &inv1, const Interval &inv2) {    return inv1.start < inv2.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> ret;                if (intervals.empty()) return ret;                sort(intervals.begin(), intervals.end(), compare);                ret.push_back(intervals[0]);                for (int i = 1; i < intervals.size(); i++) {            if (ret.back().end >= intervals[i].start)                ret.back().end = max(ret.back().end, intervals[i].end);            else                ret.push_back(intervals[i]);        }                return ret;    }};


Small Case: 4ms

Large Case: 68ms


Time: O(n)

Space: O(n)

原创粉丝点击