Leetcode 56. Merge Intervals

Poby’s Home
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;
}
};

--

--

No responses yet