合并区间-LintCode
来源:互联网 发布:javascript 转义符 编辑:程序博客网 时间:2024/06/02 00:40
给出若干闭合区间,合并所有重叠的部分。
样例
给出的区间列表 => 合并后的区间列表:
[
[
[1, 3], [1, 6],
[2, 6], => [8, 10],
[8, 10], [15, 18]
[15, 18] ]
]
挑战
O(n log n) 的时间和 O(1) 的额外空间。
#ifndef C156_H#define C156_H#include<iostream>#include<vector>#include<algorithm>using namespace std;class Interval{public: int start, end; Interval(int start, int end) { this->start = start; this->end = end; }};bool comp(const Interval &a, const Interval &b){ return a.start < b.start;}class Solution {public: /** * @param intervals: interval list. * @return: A new interval list. */ vector<Interval> merge(vector<Interval> &intervals) { // write your code here if (intervals.empty()) return intervals; sort(intervals.begin(), intervals.end(),comp); int len = intervals.size(); int i = 0; while (i < len-1) { if (intervals[i].start<=intervals[i+1].start&&intervals[i].end>=intervals[i+1].end) { intervals[i + 1] = intervals[i]; intervals.erase(intervals.begin() + i); len--; } else if (intervals[i].end >= intervals[i + 1].start) { intervals[i + 1].start = intervals[i].start; intervals.erase(intervals.begin() + i); len--; } else { i++; } } return intervals; }};#endif
阅读全文
0 0
- lintcode-156-合并区间
- LintCode- 合并区间
- LintCode:合并区间
- 合并区间-lintcode
- lintcode,合并区间
- LintCode【合并区间】
- LintCode-合并区间
- lintcode 合并区间
- lintcode 合并区间
- 合并区间-LintCode
- LintCode 合并区间
- LintCode 合并区间
- lintcode[156]:合并区间
- 合并区间-LintCode
- Lintcode——合并区间
- lintCode-给出若干闭合区间,合并所有重叠的部分。
- 区间合并
- 合并区间
- matlab做数据拟合
- Android Gradle打包
- Struts2中action注解使用异常
- HDU 2199 Can you solve this equation? 牛顿迭代法 || 二分
- hadoop的安装
- 合并区间-LintCode
- 矩阵的乘积【水题】
- 通过字节流复制粘贴文档
- hdu 5894 (组合)
- Fibonacci (矩阵快速幂)
- 仿京东首页的京东快报,自动向上滚动的广告条
- C#之入门总结_lamba,接口策略表达式排序 _22
- java有关异常的分析
- iOS KVO的实现原理