class Solution {
public:vector<vector<int>> merge(vector<vector<int>>& intervals) {if(intervals.empty()){//復習empty函數啊,日記1有的return {};}// 按照區間的起始位置進行排序sort(intervals.begin(), intervals.end());vector<vector<int>> merged;merged.push_back(intervals[0]);for (int i = 1; i < intervals.size(); ++i) {vector<int>& last = merged.back();//back取最后一個數組if (intervals[i][0] <= last[1]) {// 如果當前區間的起始位置小于或等于上一個區間的結束位置,則合并它們last[1] = max(last[1], intervals[i][1]);} else {// 否則,添加一個新的區間merged.push_back(intervals[i]);}}return merged;}
};
時間復雜度:O(n log n)
復習!排序算法的時間復雜度!日記2里也有!
空間復雜度:O(N)