leetcode hot100刷题日记——8.合并区间
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)