LeetCode56——Merge Intervals
来源:互联网 发布:反电信网络诈骗宣传片 编辑:程序博客网 时间:2024/06/11 16:36
LeetCode56——Merge Intervals
题意:
简单理解就是对区间序列做高中数学里面的并运算。
现在假设几种情况:
[1,2]∪[3,4]的并集表示就是{ [1,2]∪[3,4] } 即,无交集集合的并运算
[1,3]∪[2,4]的并集表示就是{ [1,4] } 即,有交集集合的并运算
[1,4]∪[2,3]的并集表示就是{ [1,4] } 即,有包含关系的集合的并运算
综合上述三种情况:
1.第二种和第三种是可以合并的。根据这两种情况,编写可以合并的代码,对整个序列遍历合并。
2.在此之前需要对序列中的元素按照start的值从小到大排序。
结合上述1.2代码如下:
bool cmp(const Interval &a, const Interval &b){return a.start < b.start;}class Solution {private:bool canMerge(Interval &a, Interval &b)//可以合并的情况{if (a.end >= b.start&&a.end<=b.end){a.end = b.end;return true;}else if (a.end > b.end){return true;}return false;}public:vector<Interval> merge(vector<Interval>& intervals) {int i = 0;int j;vector<Interval>result;sort(intervals.begin(), intervals.end(),cmp);while (i < intervals.size()){j = i+1;while (j<intervals.size()&&canMerge(intervals[i], intervals[j]))j++;result.push_back(intervals[i]);i = j;//一次合并完成,更新判断起点}return result;}};
0 0
- LeetCode56——Merge Intervals
- Leetcode56 Merge Intervals
- [Java]leetcode56 Merge Intervals
- leetcode56. Merge Intervals
- leetcode56,58 intervals merge
- Leetcode56. Merge Intervals
- LeetCode56. Merge Intervals
- 算法设计与分析HW7:LeetCode56.Merge Intervals
- LeetCode—Merge Intervals
- leetcode——Merge Intervals
- 数组——merge-intervals
- leetcode——Merge Intervals
- Algorithms—56.Merge Intervals
- leetcode 056 —— Merge Intervals
- 算法系列——Merge Intervals
- LeetCode 之 Merge Intervals — C++ 实现
- leetcode56&57_Merge Intervals&Insert Interval
- 【leetcode】Array—— Merge Intervals(56)
- 横竖屏切换时候Activity的生命周期的总结
- Socket通信readObject()方法出现异常
- Android build.prop 添加自定义项 及使用
- Android第三方网络资源加载框架Volley
- 多个线程顺序进行和轮询进行的问题
- LeetCode56——Merge Intervals
- 机器学习之特征工程
- python regex 入门笔记
- 子线程更新界面抛异常CalledFromWrongThreadException
- shell实现(一)设计接口和结构体
- 机器学习实战逻辑回归的java实现
- 7C. Line【拓展欧几里得】 数论模板
- 缺陷报告
- 微软VS苹果 桌面操作系统的终极一战