LeetCode[Sort]: Merge Intervals
来源:互联网 发布:淘宝闪电商学院靠谱吗 编辑:程序博客网 时间:2024/05/16 06:54
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]
.
这个题目其实不难,只要理清楚各种情况利用插入排序的方法就可以完成,我的C++代码实现如下:
vector<Interval> merge(vector<Interval> &intervals) { vector<Interval> mergeIntervals; for (auto interval : intervals) { int i; for (i = 0; i < mergeIntervals.size(); ++i) { if (interval.end < mergeIntervals[i].start) { mergeIntervals.insert(mergeIntervals.begin() + i, interval); break; } else if (interval.start <= mergeIntervals[i].end) { mergeIntervals[i].start = min(interval.start, mergeIntervals[i].start); if (interval.end > mergeIntervals[i].end) { while (i + 1 < mergeIntervals.size() && interval.end >= mergeIntervals[i + 1].start) { mergeIntervals[i].end = mergeIntervals[i + 1].end; mergeIntervals.erase(mergeIntervals.begin() + i + 1); } mergeIntervals[i].end = max(interval.end, mergeIntervals[i].end); } break; } } if (i == mergeIntervals.size()) mergeIntervals.push_back(interval); } return mergeIntervals; }
时间性能表现如下图所示:
另外,在Discuss上看到这样一种解法(https://oj.leetcode.com/discuss/13953/a-simple-java-solution):首先利用sort函数将所有输入的intervals按照start排序,然后再挨个儿插入。这个方法也值得借鉴。
1 0
- LeetCode[Sort]: Merge Intervals
- [LeetCode] 56. Merge Intervals(vector sort)
- 【Sort】56. Merge Intervals
- LeetCode-56-Merge Intervals Python自定义sort,贪心
- LeetCode: Merge Intervals
- LeetCode Merge Intervals
- LeetCode: Merge Intervals
- [Leetcode] Merge Intervals
- leetcode 28: Merge Intervals
- Leetcode: Merge Intervals
- [LeetCode] Merge Intervals
- [LeetCode]Merge Intervals
- leetcode merge intervals
- [leetcode]Merge Intervals
- LeetCode-Merge Intervals
- [leetcode] Merge Intervals
- LeetCode - Merge Intervals
- 【leetcode】Merge Intervals
- S3C2440系统中断(转)
- GROUP BY 和 ORDER BY一起使用
- N-Queens II -- leetcode
- ios id数据类型
- 这就是所谓的高危漏洞
- LeetCode[Sort]: Merge Intervals
- objective c属性列表和二进制文件的互操作
- 外挂技术-调试游戏久了为何异常的原因
- 跳过csdn直接直接host访问检查
- 正则表达式
- MVC3 换行
- Ubuntu升级出现/boot空间不足解决
- 【纯干货】微信支付接入攻略—JAVA代码分享
- Java模拟实现百度文档在线浏览