插入区间
作者:互联网
详细思路
遍历,如果在左边且无交集,放进答案,如果在右边且无交集,放进答案,如果有交集,更新newInterval的left和right让它扩大,最后把扩大的哪一个按良好的顺序放进答案 精确定义 i需要判断的下标 left right已经扩大class Solution { public: vector<vector<int>> insert(vector<vector<int>>& intervals, vector<int>& newInterval) { vector<vector<int>>ans; int left=newInterval[0],right=newInterval[1]; bool placed=false; for(int i=0;i<intervals.size();i++){ if(intervals[i][1]<left)ans.push_back(intervals[i]); else if(intervals[i][0]>right){ if(!placed){ ans.push_back({left,right}); placed=true; } ans.push_back(intervals[i]); } else { left=min(left,intervals[i][0]); right=max(right,intervals[i][1]); } } if(!placed)ans.push_back({left,right}); return ans; } };
踩过的坑 第一次没交集且遍历到了右边就必须插入,vector可不能插入中间,用placed在判断
标签:newInterval,right,placed,插入,vector,ans,区间,left 来源: https://www.cnblogs.com/zhouzihong/p/15072809.html