【leetcode】56. Merge Intervals 相邻线段归并
1. 题目
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].
2. 思路
先排序,排序规则是start小的在前,如果start相等则end大的在前。
然后从前往后遍历,如果当前要处理的节点可以归并到当前已归并的末节点上,则归并上去。
最后将已归并节点之后的空间清掉。
3. 代码
/*** Definition for an interval.* struct Interval {* int start;* int end;* Interval() : start(0), end(0) {}* Interval(int s, int e) : start(s), end(e) {}* };*/bool cmp(Interval& i, Interval& j) {return i.start < j.start || i.start == j.start && i.end > j.end;
}class Solution {
public:// 先排序, 起点小终点大在前。// 然后从前往后遍历, 将可以归并的点进行归并填入,最后多出来的元素删掉vector<Interval> merge(vector<Interval>& intervals) {if (intervals.size() == 0) { return intervals; }sort(intervals.begin(), intervals.end(), cmp);int fill = 0;int merge = 1;while (merge < intervals.size()) {Interval& fi = intervals[fill];Interval& mi = intervals[merge];if (fi.end >= mi.start) {if (mi.end > fi.end) {fi.end = mi.end;}} else {fill++;if (fill != merge) {intervals[fill] = intervals[merge];}}merge++;}intervals.resize(fill+1);return intervals;}
};
【leetcode】56. Merge Intervals 相邻线段归并相关推荐
- 【细节实现题】LeetCode 56. Merge Intervals
LeetCode 56. Merge Intervals Solution1:我的答案 这道题思路不难,有个坑爹的地方在于输入的区间向量未必是有序的,所以利用优先队列priority_queue来排序 ...
- LeetCode 56. Merge Intervals
原题链接在这里:https://leetcode.com/problems/merge-intervals/ 题目: Given a collection of intervals, merge al ...
- 56. Merge Intervals(合并区间)解法(C++ 注释)
56. Merge Intervals(合并区间) 1. 题目描述 2. 排序(Sorting) 2.1 解题思路 2.2 实例代码 1. 题目描述 给出一个区间的集合,请合并所有重叠的区间. 示例 ...
- [leetcode sort]56. Merge Intervals
Given a collection of intervals, merge all overlapping intervals. For example, Given [1,3],[2,6],[8, ...
- [Leetcode][Easy][Merge Intervals]
很简单的一个题,1A,想清楚思路即可. 现在的关键是如何用英语很快的解题的思路说清楚,并且在写代码的过程中,也可以很流畅的用英语把思路说出来. 以后刷题的关键还是模拟面试的过程吧,15分钟之内写出bu ...
- [LeetCode]Merge Intervals
题目:Merge Intervals 给定n个区间合并重合区间 思路: 先按照区间起点排序,然后合并下面情况: 1.起点相同,以最大的终点为新的终点: 2.前一个终点大于后一个的起点. /****** ...
- C#LeetCode刷题之#56-合并区间(Merge Intervals)
问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3676 访问. 给出一个区间的集合,请合并所有重叠的区间. 输入: ...
- leetcode 56. 合并区间
leetcode 56. 合并区间 题目描述: 以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] .请你合并所有重叠的区间, ...
- [leetcode]Merge Intervals @ Python
原题地址:https://oj.leetcode.com/problems/merge-intervals/ 题意: Given a collection of intervals, merge al ...
最新文章
- Java 学习笔记 ------第二章 从JDK到IDE
- html 鼠标focus 背景,强大的CSS:focus-visible伪类真的太6了!
- IDEA及IDEA汉化包
- 重磅!就在刚刚,吊打一切的 YOLOv4 开源了!
- 小学生计算机课堂实践的重要性,浅谈小学信息技术教育重要性.doc
- [优先队列][堆] Luogu P4505 组合子逻辑
- online游戏服务器架构--数据库及事件相关 .
- php 输出数组函数调用函数,php – 无法在数组中调用函数
- TCP 粘包、半包 Netty 全搞定
- Python+OpenCV:图像二进制鲁棒独立基本特征(BRIEF, Binary Robust Independent Elementary Features)
- Koa框架教程,Koa框架开发指南,Koa框架中文使用手册,Koa框架中文文档
- 机器学习入门——详解主成分分析
- spss essentials for python_SPSS python教程:[1]安装Python Essentials
- 《统计学》第八版贾俊平第十章方差分析知识点总结及课后习题答案
- js实现复制input隐藏域的取巧做法
- MyBatis之one2one与one2many
- Java多线程系列--【JUC锁04】-公平锁(二)
- thinkphp 官网教程
- javaWeb(b站狂神说)
- 基于重构误差的同构图分类模型