Merge Intervals - LeetCode
来源:互联网 发布:数据库增删改查小项目 编辑:程序博客网 时间:2024/06/12 22:11
一道不需要算法的问题,但是难度仍未hard,可能就是边界条件太多了,采用循环不变量就能轻松解决。
1.排序
2.对每一个interval做操作,循环中[left,right]表示当前要输出的interval,如果新的interval与当前的没有重叠,就将当前的输出,并把新的[left,right]设为新的interval的值,否则就将两个interval合并。
/** * Definition for an interval. * struct Interval { * int start; * int end; * Interval() : start(0), end(0) {} * Interval(int s, int e) : start(s), end(e) {} * }; */class Solution { static bool cmpFun(const Interval& i1,const Interval& i2) { return i1.start < i2.start; }public: vector<Interval> merge(vector<Interval>& intervals) { int size = intervals.size(); vector<Interval> ret; if (0 == size) return ret; //todo sort sort(intervals.begin(),intervals.end(),cmpFun); int left,right; for (int i = 0 ; i < size ; ++i) { if (0 == i) { left = intervals[0].start; right = intervals[0].end; continue; } if (intervals[i].start <= right) right = max(right,intervals[i].end); else { ret.push_back(Interval(left,right)); left = intervals[i].start; right = intervals[i].end; } } ret.push_back(Interval(left,right)); return ret; }};
0 0
- LeetCode: Merge Intervals
- LeetCode Merge Intervals
- LeetCode: Merge Intervals
- [Leetcode] Merge Intervals
- leetcode 28: Merge Intervals
- Leetcode: Merge Intervals
- [LeetCode] Merge Intervals
- [LeetCode]Merge Intervals
- leetcode merge intervals
- [leetcode]Merge Intervals
- LeetCode-Merge Intervals
- [leetcode] Merge Intervals
- LeetCode - Merge Intervals
- 【leetcode】Merge Intervals
- leetcode Merge Intervals
- LeetCode Merge Intervals
- [LeetCode] Merge Intervals
- LeetCode | Merge Intervals
- iftop -f参数的使用_BPF syntax
- fatal io error 11错误
- [每天学一点Linux系列]Linux常用的命令
- Vnc viewer与windows的复制粘贴
- Oracle Study之--Oracle数据仓库备份方案
- Merge Intervals - LeetCode
- Android各版本对应的SDK和JDK版本
- 求最大子数组和的6个版本
- QTreeView类和相关类的应用记录
- C#开发微信门户及应用(6)--微信门户菜单的管理操作
- Mysql:This version of MySQL doesn’t yet support ‘LIMIT & IN/ALL/ANY/SOME 错误解决
- Git之分支创建策略
- 堆和堆栈
- start