Leetcode 56. Merge Intervals
Jun 19, 2022
Given an array of intervals
where intervals[i] = [starti, endi]
, merge all overlapping intervals, and return an array of the non-overlapping intervals that cover all the intervals in the input.
Example 1:
Input: intervals = [[1,3],[2,6],[8,10],[15,18]]
Output: [[1,6],[8,10],[15,18]]
Explanation: Since intervals [1,3] and [2,6] overlap, merge them into [1,6].class Solution {
public:
vector<vector<int>> merge(vector<vector<int>>& intervals) {
sort(begin(intervals), end(intervals));
vector<vector<int>> merged;
for (auto& e: intervals) {
if (!merged.size() || merged.back()[1] < e[0]) {
// no overlap
merged.push_back(e);
} else {
// some overlap
merged.back()[1] = max(merged.back()[1], e[1]);
}
}
return merged;
}
};