πŸ“ Problem Details

Already solved β‡’ See 56. Merge Intervals

Additional Solution:

class Solution {
public:
    vector<vector<int>> merge(vector<vector<int>>& intervals) {
        vector<vector<int>> result;
        sort(intervals.begin(), intervals.end()); // sort by start date
 
        for(const auto& interval : intervals) {
            if(result.empty()
            || result.back()[1] < interval[0]) {
                result.push_back(interval); // no overlap
            }
            else {
                result.back()[1] = max(result.back()[1], interval[1]); // merge overlapping intervals
            }
        }
        return result;
    }
};