LeetCode C++ 56. Merge Intervals【排序/陣列】中等
Given a collection of intervals, merge all overlapping intervals.
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.
NOTE: input types have been changed on April 15, 2019. Please reset to default code definition to get new method signature.
Constraints: intervals[i][0] <= intervals[i][1]
題意:給出一個區間的集合,請合併所有重疊的區間。
解法1 排序
對區間陣列,按照左端點從小到大排序,左端點相同則按照右端點從小到大排序。然後從前往後掃描,如果當前區間的左端點大於結果陣列尾元素的右端點,則不存在重疊,無需區間合併;否則比較大小,並用當前區間的右端點更新結果陣列尾元素的右端點,進行區間合併。
class Solution {
public:
vector<vector<int>> merge(vector<vector<int>>& intervals) {
sort(intervals.begin(), intervals.end());
vector<vector<int>> ans;
for (auto &i : intervals) {
if (ans.empty() || i[0] > ans.back()[1]) ans.push_back(i); //不重疊
else ans.back()[1] = max(i[1], ans.back()[1]); //i[0]<=ans.back()[1]
}
return ans;
}
};
提交後效率如下:
執行用時:60 ms, 在所有 C++ 提交中擊敗了49.30% 的使用者
記憶體消耗:14 MB, 在所有 C++ 提交中擊敗了51.16% 的使用者
相關文章
- Leetcode Merge IntervalsLeetCode
- Leetcode-Merge IntervalsLeetCode
- leetcodequestion_56 Merge IntervalsLeetCode
- c++陣列排序插入C++陣列排序
- leetcode:面試題 01.08. 零矩陣(陣列,中等)LeetCode面試題矩陣陣列
- 【LeetCode 88_陣列】Merge Sorted ArrayLeetCode陣列
- 【LeetCode】Sort Colors 陣列排序LeetCode陣列排序
- 【LeetCode】905.按奇偶排序陣列LeetCode排序陣列
- LeetCode 關於陣列的相對排序LeetCode陣列排序
- LeetCode 33——搜尋旋轉排序陣列LeetCode排序陣列
- 陣列排序陣列排序
- Leetcode[陣列] 26. 刪除排序陣列中的重複項LeetCode陣列排序
- LeetCode C++ 劍指 Offer 51. 陣列中的逆序對【歸併排序/樹狀陣列/線段樹】LeetCodeC++陣列排序
- leetCode33搜尋旋轉排序陣列LeetCode排序陣列
- LeetCode 81——搜尋旋轉排序陣列 IILeetCode排序陣列
- LeetCode33 搜尋旋轉排序陣列LeetCode排序陣列
- LeetCode#33搜尋旋轉排序陣列LeetCode排序陣列
- 【LeetCode(Java) - 33】搜尋旋轉排序陣列LeetCodeJava排序陣列
- LeetCode33. 搜尋旋轉排序陣列LeetCode排序陣列
- 陣列的排序陣列排序
- 物件陣列排序物件陣列排序
- JavaScript 陣列排序JavaScript陣列排序
- js陣列排序JS陣列排序
- LeetCode C++ 50. Pow(x, n)【Recursion】中等LeetCodeC++
- leetcode:462. 最少移動次數使陣列元素相等 II(數學,中等)LeetCode陣列
- LeetCode每日一題: 按奇偶排序陣列(No.905)LeetCode每日一題排序陣列
- leetcode, LC68:旋轉排序陣列搜尋LeetCode排序陣列
- LeetCode-兩個排序陣列的中位數LeetCode排序陣列
- 為什麼處理排序陣列比未排序陣列快排序陣列
- [C++]陣列C++陣列
- 多維陣列排序陣列排序
- 陣列氣泡排序陣列排序
- 陣列選擇排序陣列排序
- js陣列排序整理JS陣列排序
- javascript 陣列快速排序JavaScript陣列排序
- 陣列多重排序陣列排序
- c# 陣列排序C#陣列排序
- 二維陣列排序陣列排序