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% 的使用者
相關文章
- 56. Merge Intervals
- leetcode:面試題 01.08. 零矩陣(陣列,中等)LeetCode面試題矩陣陣列
- c++陣列排序插入C++陣列排序
- 【LeetCode】905.按奇偶排序陣列LeetCode排序陣列
- LeetCode 關於陣列的相對排序LeetCode陣列排序
- LeetCode 33——搜尋旋轉排序陣列LeetCode排序陣列
- Leetcode[陣列] 26. 刪除排序陣列中的重複項LeetCode陣列排序
- LeetCode C++ 劍指 Offer 51. 陣列中的逆序對【歸併排序/樹狀陣列/線段樹】LeetCodeC++陣列排序
- leetCode33搜尋旋轉排序陣列LeetCode排序陣列
- LeetCode33. 搜尋旋轉排序陣列LeetCode排序陣列
- LeetCode#33搜尋旋轉排序陣列LeetCode排序陣列
- LeetCode33 搜尋旋轉排序陣列LeetCode排序陣列
- 【LeetCode(Java) - 33】搜尋旋轉排序陣列LeetCodeJava排序陣列
- LeetCode 81——搜尋旋轉排序陣列 IILeetCode排序陣列
- LeetCode_1636_按照頻率將陣列升序排序LeetCode陣列排序
- leetcode, LC68:旋轉排序陣列搜尋LeetCode排序陣列
- LeetCode每日一題: 按奇偶排序陣列(No.905)LeetCode每日一題排序陣列
- LeetCode-兩個排序陣列的中位數LeetCode排序陣列
- LeetCode C++ 376. Wiggle Subsequence【Dynamic Programming】中等LeetCodeC++
- LeetCode C++ 50. Pow(x, n)【Recursion】中等LeetCodeC++
- 陣列排序陣列排序
- leetcode:462. 最少移動次數使陣列元素相等 II(數學,中等)LeetCode陣列
- LeetCode每日一題: 按奇偶排序陣列 II(No.27)LeetCode每日一題排序陣列
- LeetCode 4. 兩個排序陣列的中位數LeetCode排序陣列
- LeetCode-4. 兩個排序陣列的中位數LeetCode排序陣列
- js陣列排序JS陣列排序
- JavaScript 陣列排序JavaScript陣列排序
- 物件陣列排序物件陣列排序
- 陣列的排序陣列排序
- LeetCode1122. 陣列的相對排序(20201114每日一題)LeetCode陣列排序每日一題
- LeetCode之從排序陣列中刪除重複項-SwiftLeetCode排序陣列Swift
- LeetCode C++ 316. Remove Duplicate Letters【Stack/Greedy/String】中等LeetCodeC++REM
- LeetCode C++ 1302. Deepest Leaves Sum【Tree/BFS/DFS】中等LeetCodeC++
- 為什麼處理排序陣列比未排序陣列快排序陣列
- [LeetCode] 435. Non-overlapping IntervalsLeetCodeAPP
- c# 陣列排序C#陣列排序
- 二維陣列排序陣列排序
- 多維陣列排序陣列排序