2021-12-24 Daily-Challenge
Today I have done leetcode's December LeetCoding Challenge with cpp
.
December LeetCoding Challenge 24
Description
Merge Intervals
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] overlaps, merge them into [1,6].
Example 2:
Input: intervals = [[1,4],[4,5]]
Output: [[1,5]]
Explanation: Intervals [1,4] and [4,5] are considered overlapping.
Constraints
1 <= intervals.length <= 104
intervals[i].length == 2
0 <= starti <= endi <= 104
Solution
auto speedup = [](){
cin.tie(nullptr);
cout.tie(nullptr);
ios::sync_with_stdio(false);
return 0;
}();
class Solution {
public:
vector<vector<int>> merge(vector<vector<int>>& intervals) {
sort(intervals.begin(), intervals.end());
vector<vector<int>> answer;
vector<int> cur = intervals.front();
for(auto &interval : intervals) {
if(interval[0] > cur[1]) {
answer.push_back(cur);
cur[0] = interval[0];
}
cur[1] = max(interval[1], cur[1]);
}
answer.emplace_back(cur);
return answer;
}
};
// Accepted
// 168/168 cases passed (16 ms)
// Your runtime beats 88.84 % of cpp submissions
// Your memory usage beats 94.91 % of cpp submissions (14.1 MB)