Skip to content

Latest commit

 

History

History
24 lines (21 loc) · 666 Bytes

056.md

File metadata and controls

24 lines (21 loc) · 666 Bytes

56. Merge Intervals

Solution 1 (O(log(n)))

class Solution {
public:
    static bool compare(const vector<int> &a, const vector<int> &b) {
        return a[0] < b[0];
    }

    vector<vector<int>> merge(vector<vector<int>>& intervals) {
        sort(intervals.begin(), intervals.end(), compare);
        vector<vector<int>> ans;
        for (int i = 0; i < intervals.size(); i++) {
            if (ans.size() != 0 && intervals[i][0] <= ans[ans.size() - 1][1])
                ans[ans.size() - 1][1] = max(ans[ans.size()-  1][1], intervals[i][1]);
            else
                ans.push_back(intervals[i]);
        }
        return ans;
    }
};