合并区间
来源:互联网 发布:天猫销售数据 编辑:程序博客网 时间:2024/05/19 23:26
描述
给出若干闭合区间,合并所有重叠的部分
样例
[ [1, 3], [2, 6], [8, 10], [15, 18] ] -> [ [1, 6], [8, 10], [15, 18 ]
思考
- 先对左边界进行排序,这样就只需要针对右边界的不同情况分别处理
- 右边界情况分为: 包含,交叉,不接触
代码
// By Lentitude/** * Definition of Interval: * classs Interval { * int start, end; * Interval(int start, int end) { * this->start = start; * this->end = end; * } */class Solution {public: /** * @param intervals: interval list. * @return: A new interval list. */ // 升序函数, 注意使用 static 可以避免冲突 static bool Cmp(const Interval &a, const Interval &b){ return a.start < b.start; } vector<Interval> merge(vector<Interval> &intervals) { // write your code here if (intervals.empty()) return intervals; // 对该动态数组进行升序处理 sort(intervals.begin(), intervals.end(), Cmp); int len = intervals.size(); int i = 0; while (i < len - 1){ // 包含 if (intervals[i].end >= intervals[i + 1].end){ intervals.erase(intervals.begin() + i + 1); --len; }else if (intervals[i].end >= intervals[i + 1].start){ // 交叉 intervals[i].end = intervals[i + 1].end; intervals.erase(intervals.begin() + i + 1); --len; }else{ // 不接触 ++i; } } return intervals; }};
0 0
- 区间合并
- 合并区间
- 合并区间
- 合并区间
- 合并区间
- 合并区间
- 合并区间
- 合并区间
- 区间合并
- 区间合并
- 区间合并
- 区间合并
- 合并区间
- 合并区间
- 合并区间
- 合并区间
- 合并区间
- 合并区间
- 正整数分组
- Object-Oriented Analysis and Design Using UML 翻译与学习 (M-C)
- 217. Contains Duplicate
- show index from table_name返回列解释
- Problem 2193 So Hard
- 合并区间
- OpenWrt下WiFi无线指标的提取(MAC地址、RSSI等)
- 神经网络后向传播算法学习笔记
- HDOJ 1002 A + B Problem II
- 并查集
- MyEclipse的破解
- 数据结构之表ADT
- Jmeter基础-添加文件
- Lua中的面向对象编程