给定一组不重叠的间隔,在间隔中插入一个新的间隔(如有必要,合并)。间隔最初按照起始时间进行排序。
来源:互联网 发布:淘宝手机联盟怎么提现 编辑:程序博客网 时间:2024/05/17 01:29
本题源自LeetCode
---------------------------------------------------
思路 遍历间隔,
1 如果间隔小余要插入的间隔 则直接压入
2 如果有重叠则要合并,合并后的间隔,起始为最小的,结尾为最大的。
3 如果遇到比要出入大的,就终止循环,然后把后面比插入大的间隔压入。
vector<Interval> insert(vector<Interval> &intervals, Interval newInterval) { vector<Interval> result; int i=0; int flag=0; for(;i<intervals.size();i++){ if(intervals[i].end<newInterval.start) result.push_back(intervals[i]); else if(intervals[i].start>newInterval.end){ break; } else{ newInterval.start=min(newInterval.start,intervals[i].start); newInterval.end=max(newInterval.end,intervals[i].end); } } result.push_back(newInterval); for(;i<intervals.size();i++) result.push_back(intervals[i]); return result; }
延伸: 给定一个间隔数组,合并重复的。
思路 :先按开始时间排序,然后再将最小的压入结果数据结构,比较如果有重叠 就更新,否则 压入
vector<Interval> merge(vector<Interval> &intervals) { if(intervals.size()==0) return vector<Interval>(); sort(intervals.begin(),intervals.end(),comp); vector<Interval> result; result.push_back(intervals[0]); for(int i=1;i<intervals.size();i++){ if(result.back().end >= intervals[i].start){ Interval tmp=result.back(); result.pop_back(); tmp.end=max(tmp.end,intervals[i].end); // result.back().end=max(result.back().end,intervals[i].end); result.push_back(tmp); }else{ result.push_back(intervals[i]); } } return result; } static bool comp(Interval a,Interval b){ return a.start<b.start; }
阅读全文
0 0
- 给定一组不重叠的间隔,在间隔中插入一个新的间隔(如有必要,合并)。间隔最初按照起始时间进行排序。
- 在给定的一组间隔里插入一个新的间隔
- Oracle 按照指定的时间间隔进行分组
- Oracle 按照指定的时间间隔进行分组
- 间隔
- 每天一道LeetCode-----将间隔集中有重叠的间隔合并
- 合并间隔
- js中关于两个时间的间隔
- Java中关于时间间隔的计算
- 在一个时间段内的间隔查询
- 按照时间间隔查询数据库
- C#时间间隔的计算
- C#时间间隔的计算
- C#时间间隔的计算
- 计算时间间隔的方法
- c#时间间隔的计算
- C#时间间隔的计算
- 固定你的时间间隔!
- Servlet学习笔记—实现Servlet接口(创建Servlet的第一种方法)
- SSL 模拟赛 总结(2017.10.25)
- c++中的拷贝构造函数和赋值函数
- new and operator new
- Cross-Company Code Depreciation Postings with RAPOST2000
- 给定一组不重叠的间隔,在间隔中插入一个新的间隔(如有必要,合并)。间隔最初按照起始时间进行排序。
- Messenger实现多进程通信
- java System.arrayCopy 参数意义,使用
- 可凝儿贵族香氛系列 嫩肤补水沐浴露
- Java多线程入门
- 百度糯米音乐盛典深圳站完美收官 小猪罗志祥嗨爆全场
- ActionContext和ServletActionContext小结
- iOS 10有啥新功能?看这一篇就够了
- 慑人于千里之外,一个新的安全巡查无人机的思路 | 新智造