LeetCode(56)Merge Intervals
2024-08-30 15:57:00
题目
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].
分析
给定几个区间,要求合并重叠区间,返回结果;
AC代码
/**
* Definition for an interval.
* struct Interval {
* int start;
* int end;
* Interval() : start(0), end(0) {}
* Interval(int s, int e) : start(s), end(e) {}
* };
*/
//自定义Interval类型元素的升序比较函数
bool cmp(Interval a, Interval b)
{
return a.start < b.start;
}
class Solution {
public:
vector<Interval> merge(vector<Interval>& intervals) {
//如果输入参数为空,则返回空vector
if (intervals.empty())
return vector<Interval>();
int len = intervals.size();
//首先,按照每个Integerval的区间首值进行排序,自定义比较
sort(intervals.begin(), intervals.end() , cmp);
//声明结果
vector<Interval> ret;
vector<Interval>::iterator iter = intervals.begin();
//定义临时变量
Interval temp = intervals[0];
for (int i = 0; i < len; i++)
{
//换一种判断方法
if (intervals[i].start > temp.end)
{
ret.push_back(temp);
temp = intervals[i];
}
else{
temp.end = temp.end > intervals[i].end ? temp.end : intervals[i].end;
}//else
}//for
ret.push_back(temp);
return ret;
}
};
最新文章
- js生成和下载二维码
- win10删除导航栏文档等图标,去除快捷方式
- 部署keepalive+lvs
- 提高FOR插入数据库动作的优化代码
- fork和exec函数
- HTML基础总结<;标题>;
- Javascript基础Function
- C#VS面向对象基础(二)
- [Usaco2007 Dec]穿越泥地[bfs][水]
- 视频剪辑软件原型-videocut
- python_异常处理_断言
- 移动Web UI库(H5框架)
- Python-Selenium中chromeDriver限制图片和Javascript加载
- Leetcode题库——38.报数
- Python3基础 if嵌套示例
- url传递数据
- tomcat启动项目的时候不报错而且启动的很快
- vue组件之间传值方式解析
- 20145327 《Java程序设计》第二周学习总结
- 关于 double sort 这道题的思考