Merge Intervals——STL的应用
2024-10-21 12:39:20
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]
.
这里先排序,然后在合并,只要想到了先排序,这道题就好做了,运用STL中sort函数,然后自己写个比较大小的重载函数,虽然之前看到过写比较大小的重载函数,但是没自己写过,这次是自己写,是一大进步,并且之前没用过vector中的back函数,这次也是第一次用,写这个代码学到点东西~~
/**
* 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 {
public:
static bool cmp(const Interval&a,const Interval&b)
{
return a.start<b.start;
}
vector<Interval> merge(vector<Interval>& intervals) {
if(intervals.size()==||intervals.size()==)
return intervals;
sort(intervals.begin(),intervals.end(),cmp);
vector<Interval> res;
res.push_back(intervals[]);
for(int i=;i<intervals.size();i++)
{
Interval temp=res.back();
if(temp.end>=intervals[i].start&&temp.end<intervals[i].end)
{
temp.end=intervals[i].end;
res.pop_back();
res.push_back(temp);
} else if(temp.end<intervals[i].start)
res.push_back(intervals[i]);
}
return res;
}
};
最新文章
- redis并发问题
- C# 扩展方法集
- (原创)Xilinx的ISE生成模块ngc网表文件
- linux ISO/IMG make
- Docker Dockerfile详解
- 传值 属性 block 单例 协议
- 【原】ios下比较完美的单例模式,已验证
- (剑指Offer)面试题28:字符串的排列
- 原生javascript效果:无缝滚动
- 【Ural1057】幂和的数量
- 黑马程序员——C语言开门片内存分析
- Hibernate(三)——框架中的关系映射
- App installation failed There was an internal API error.
- 新版本chrome浏览器控制台怎么设置成独立的窗口
- Sql语句varchar或nvarchar字段条件前加N的性能差异
- Django 2.0 新特性 抢先看!
- NOIP 2015运输计划
- python进程池multiprocessing.Pool和线程池multiprocessing.dummy.Pool实例
- js 数据类型具体分析
- 软件工程实践_Task1
热门文章
- 【图论】tarjan的离线LCA算法
- JavaScript随机数生成方法
- saltstack:multi-master configuration
- Bigbluebutton服务执行过程及相关配置文件
- vue-transition-animation
- svn稀疏目录--通过设置工作目录的深度(depth)实现目录树的部分签出
- Oracle数据库,忽略大小写Like模糊查询(SQL Server,MySql原理相同)
- 【NOIP】提高组2016 愤怒的小鸟
- [Unity]多线程编程的一点心得
- sumblime快捷键