博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
156 合并区间
阅读量:4881 次
发布时间:2019-06-11

本文共 1713 字,大约阅读时间需要 5 分钟。

原题网址:

描述

给出若干闭合区间,合并所有重叠的部分。

您在真实的面试中是否遇到过这个题?  是

样例

Given intervals => merged intervals:

[                     [  (1, 3),               (1, 6),  (2, 6),      =>       (8, 10),  (8, 10),              (15, 18)  (15, 18)            ]]

挑战

O(n log n) 的时间和 O(1) 的额外空间。

 

思路:

时间复杂度O(n log n) 应该是快排序了,可使用自带的sort函数,排序的是区间的start参数,按照从小到大的顺序。

参考:

排序后是合并,将intervals的第一个区间(start最小区间)压入result中。然后是下标从1开始遍历intervals,如果当前区间的start小于等于结果中最后一个区间的end,两个区间有重叠,结果中区间的end取二者中较大值,否则,将当前区间压入结果数组中。

AC代码:

/** * Definition of Interval: * classs Interval { *     int start, end; *     Interval(int start, int end) { *         this->start = start; *         this->end = end; *     } * } */class Solution {public:    /**     * @param intervals: interval list.     * @return: A new interval list.     */    vector
merge(vector
&intervals) { // write your code here vector
result; int n=intervals.size(); if (n==0) { return result; } sort(intervals.begin(),intervals.end(),cmp); result.push_back(intervals[0]); for (int i=1;i
=intervals[i].start) { result.back().end=(result.back().end>intervals[i].end)?result.back().end:intervals[i].end; } else { result.push_back(intervals[i]); } } return result; } static bool cmp(Interval a,Interval b){ return a.start

关于sort自定义比较函数,可参考:

本题中定义的CMP函数需要加 static ,至于为什么我也很费解。我只知道加了static后cpm函数没有this指针……

可参考:

    写在类内时,要加上static,lexicographical_compare 最后要求的是一个普通函数指针,而不是成员函数指针,所以要加static

另外,若将CMP函数放在solution类外定义成全局函数也可以编译通过,如

转载于:https://www.cnblogs.com/Tang-tangt/p/9166912.html

你可能感兴趣的文章
OpenCV imshow无法显示图片
查看>>
js线程&定时器
查看>>
java.lang.IllegalStateException: getOutputStream() has already been cal
查看>>
Ubuntu下搜狗输入法乱码
查看>>
计算机网络●通信协议
查看>>
在EditPlus里配置编译和运行java代码的方法
查看>>
gson所需jar包
查看>>
最干净的pyinstaller打包成exe应用程序方法
查看>>
Python中的数据类型
查看>>
讲给普通人听的分布式数据存储【转载】
查看>>
关于最短路
查看>>
Hbase记录-zookeeper部署
查看>>
Python pexpect出现错误‘module have no attribute "spawn" 解决办法
查看>>
vs2008 C# 怎么调试C++ dll[转]
查看>>
PHP的魔术方法
查看>>
警惕麦咖啡的"缓冲区溢出保护"引起的ASP.NET 中 System.OutOfMemoryException 的错误...
查看>>
optimizer_dynamic_sampling
查看>>
HTML(WEB)开发day05
查看>>
序列合并求前K小项 POJ2442
查看>>
unity点选构建Mesh并保存OBJ
查看>>