每日Leetcode

作者: abcd991276 (QQ)   2023-01-16 14:49:45
57. Insert interval
題目就是一堆數學的interval要插入一個新的
插入新的要把有重疊的合併
他原本就有排序了
策略就是沒有重疊就放進去
有重疊區間就變兩個合併在繼續迴圈
發現剩下的區間都跟前面合併的不重疊就把合併的放進去
然後再放剩下不重疊的
class Solution {
public:
vector<vector<int>> insert(vector<vector<int>>& intervals, vector<int>& newI
nterval) {
if (intervals.size() == 0)
return {newInterval};
vector<vector<int>> ans;
vector<int> insert_temp = newInterval;
int push_insert_temp = 0;
for (auto &interval:intervals){
if (interval[0] > insert_temp[1] || interval[1] < insert_temp[0]){
if (interval[0] > insert_temp[1] && !push_insert_temp){
ans.emplace_back(insert_temp);
push_insert_temp = 1;
}
ans.emplace_back(interval);
}else{
insert_temp[0] = min(interval[0], insert_temp[0]);
insert_temp[1] = max(interval[1], insert_temp[1]);
}
}
if (!push_insert_temp)
ans.emplace_back(insert_temp);
return ans;
}
};
作者: pandix (麵包屌)   2023-01-16 15:04:00
大師

Links booklink

Contact Us: admin [ a t ] ucptt.com