算法设计与分析HW7:LeetCode56.Merge Intervals
来源:互联网 发布:金蝶软件数据库职位 编辑:程序博客网 时间:2024/06/05 15:03
Description:
Given a collection of intervals, merge all overlapping intervals.
For example,
Given [1,3],[2,6],[8,10],[15,18], return [1,6],[8,10],[15,18].
Solution:
Analysis and Thinking:
分析题目的要求可得,问题要求获得输入的一组由若干数组组成的数组集合,将其中有重叠的元素进行合并。解决方法应该分为两步:一是找到相邻间隔,二是查看元素是否有重叠,并将重叠的元素合并。这里,首先需要依据间隔的起始时间对输入数组排序,然后遍历输入,判断是否有重叠的依据是,若当前一个间隔的结束时间大于等于其开始时间,则有重叠,需要合并。
Steps:
1.将数组集合中的第一个间隔拷贝到新的数组中,该数组为待返回结果数组
2.从输入的第二个元素开始,遍历输入,重复3、4
3.查看是否有重叠情况,若有,改变结果数组的最后元素的结束时间
4.若无重叠情况,将输入的结合的该元素添加入结果数组
5.返回结果数组
Codes:
bool compare(Interval in1,Interval in2){ if in1.start<in2.start return 1; else return 0;}class Solution{public: vector<Interval> merge(vector<Interval> &intervalsInput) { vector<Interval> result_tempi; if(intervalsInput.size()==0) return result_tempi; sort(intervalsInput.begin(),intervalsInput.end(),compare); result_tempi.push_back(intervalsInput[0]); for(int i=1;i<intervalsInput.size();i++) { if(result_tempi[result_tempi.size()-1].end >=intervalsInput[i].start) result_tempi[result_tempi.size()-1].end=max(result_tempi[result_tempi.size()-1].end,intervalsInput.end); else result_tempi.push_back(intervalsInput[i]); } return result_tempi; }};
Results:
0 0
- 算法设计与分析HW7:LeetCode56.Merge Intervals
- Leetcode56 Merge Intervals
- [Java]leetcode56 Merge Intervals
- leetcode56. Merge Intervals
- leetcode56,58 intervals merge
- Leetcode56. Merge Intervals
- LeetCode56. Merge Intervals
- LeetCode56——Merge Intervals
- (算法设计技巧与分析)Merge
- 算法分析与设计week07--435. Non-overlapping Intervals
- Merge Intervals算法
- 算法分析与设计课程17——435. Non-overlapping Intervals
- hw7
- leetcode56&57_Merge Intervals&Insert Interval
- 算法系列——Merge Intervals
- Merge Intervals
- Merge Intervals
- Merge Intervals
- 活动安排问题
- php中使用mysqli_fetch_array跟mysqli_fetch_row的区别
- SpringMVC 对象传递
- SpringMVC 集合传递
- 第三弹:微信小程序开发思考总结—“文章阅读器和电影信息”项目实践---阅读首页、阅读详情开发
- 算法设计与分析HW7:LeetCode56.Merge Intervals
- 深入讲解Android Property机制
- 《精彩绝伦的CSS》——提示(三)让元素“消失”
- My First RPG Game总结一
- 过滤器与拦截器之间的区别
- 最常用的15大Eclipse开发快捷键技巧
- 删数问题(贪心问题)
- 4.变量
- Codeforces 801C Voltage Keepsake 二分+精度