[leetcode] 区间合并问题 Merge Interval
2014-11-30 04:49
399 查看
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].
来源:leetcode
思路:用贪心法,先按照每个区间的start position进行排序,排序之后进行合并。代码如下:
/** * 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: vector<Interval> merge(vector<Interval> &intervals) { int i=0; if(intervals.size() >1) for(int i=1; i< intervals.size(); i++) //进行排序 { Interval inte = intervals[i]; int j; for(j=i-1; j>=0; j--) { if(inte.start< intervals[j].start ) intervals[j+1] = intervals[j]; else break; } intervals[j+1] = inte; } else return intervals; vector<Interval> out; out.push_back(intervals[0]); for(int i=1; i< intervals.size(); i++) { if( out.back().end >= intervals[i].start ) out.back().end = max( intervals[i].end, out.back().end ); else out.push_back( intervals[i] ); } return out; } };
相关文章推荐
- 间隔问题,合并间隔(merge interval),插入间隔(insert interval)
- 【题解】【区间】【二分查找】【Leetcode】Insert Interval & Merge Intervals
- (Java) LeetCode 56. Merge Intervalse —— 合并区间
- 石子合并问题(区间DP)
- poj 1738 An old Stone Game(区间dp 合并石子问题直线型)
- Merge k Sorted Lists 合并k个有序链表@LeetCode
- LeetCode - Merge Interval.
- 合并程序集时出错的问题ILMerge.Merge.ERROR...
- [LeetCode] Merge Interval系列,题:Insert Interval,Merge Intervals
- Merge Intervals 合并区间@LeetCode
- Insert Interval 插入区间@LeetCode
- 数据结构与算法[LeetCode]—两个有序数组合并及找中点问题
- NKOJ 1137 石子合并问题 (区间dp)
- 将两个list链表通过merge合并时注意的三个问题
- Insert Interval (区间的覆盖合并) 【leetcode】
- Merge Two Sorted Lists 合并两个有序链表@LeetCode
- PHP 函数之 array_merge_recursive,相同键合并问题
- 微软BI 之SSIS 系列 - Merge, Merge Join, Union All 合并组件的使用以及Sort 排序组件同步异步的问题
- 链表list容器中通过splice合并链表与merge的不同,及需要注意的问题
- 面试题17:合并两个有序链表(Leetcode-21:Merge Two Sorted Lists)