leetcode_c++:Merge_Intervals(056)
2016-05-31 22:44
330 查看
题目
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].
算法
复杂度:O(nm)#include<iostream> #include<vector> #include <algorithm> using namespace std; const int N=0; struct Interval { int start; int end; Interval() : start(0), end(0) {} Interval(int s, int e) : start(s), end(e) {} }; bool isLess(const Interval &a, const Interval &b){ return a.start<b.start; } class Solution{ public: vector<Interval> merge(vector<Interval> &intervals){ int nSize=intervals.size(); vector<Interval> result; if(nSize==0) return result; sort(intervals.begin(),intervals.end(),isLess); Interval val=intervals[0]; Interval next; for(int i=1;i<nSize;++i){ next=intervals[i]; if(next.start>val.end){ result.push_back(val); val=next; }else{ val.end=val.end>next.end? val.end:next.end; } } result.push_back(val); return result; } };
相关文章推荐
- C语言运行时库中哪些API在UWP中不可用?
- C++ 逆序输出不多于5位的正整数
- 【C++ 学习】03 做个遵纪守法的码农
- error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 解决方法
- leetcode #72 in cpp
- C++经验(一)
- 【C++ 学习】02 符号的十八般武艺
- C++中类对象的内存布局和占用空间
- C++11智能指针读书笔记;
- visual studio2015下载地址
- C++ Primer 类 12.4 explicit 构造函数
- C语言 面试
- C++类之const
- C语言学习篇-4运算符及其优先级
- 【C++ 学习】01 资源整理
- 栈顺序存储结构的C++模板类程序源代码
- C++中特别的函数和变量
- 2016.05.31
- c++实现堆排序
- C++中类的继承方式-public,protected,private