LeetCode[Sort]: Merge Intervals
2015-02-04 15:27
302 查看
Given a collection of intervals, merge all overlapping intervals.
For example,
Given
return
这个题目其实不难,只要理清楚各种情况利用插入排序的方法就可以完成,我的C++代码实现如下:
时间性能表现如下图所示:
![](http://img.blog.csdn.net/20150204152703209?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2hmZTAwNw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
另外,在Discuss上看到这样一种解法(https://oj.leetcode.com/discuss/13953/a-simple-java-solution):首先利用sort函数将所有输入的intervals按照start排序,然后再挨个儿插入。这个方法也值得借鉴。
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排序,然后再挨个儿插入。这个方法也值得借鉴。
相关文章推荐
- [LeetCode] Merge Intervals 排序sort
- LeetCode-56-Merge Intervals Python自定义sort,贪心
- leetcode-75 Sort Colors
- Leetcode 147. Insertion Sort List(链表实现快排)
- [leetcode][list][sort] Sort List
- leetcode147~Insertion Sort List
- LeetCode(148)Sort List
- leetcode_Sort a linked list in O(n log n) time using constant space complexity.
- 【leetcode】Sort List
- LeetCode 之 Sort Colors
- leetcode 75. Sort Colors
- Leetcode 56 Merge Intervals
- LeetCode-Sort Colors
- 【leetcode】Merge Intervals
- 128_leetcode_Sort Colors
- 待字闺中之快排单向链表;leetcode之Sort List
- Leetcode 75. Sort Colors
- Sort List(LeetCode)
- LeetCode之Sort List
- leetcode 324. Wiggle Sort II