leetcode—有关区间合并
来源:互联网 发布:手机炒股模拟软件 编辑:程序博客网 时间:2024/04/27 23:45
题目一:
Merge Intervals
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]
.
/** * 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: static bool cmp(const Interval& a, const Interval& b)//升序排列 { return a.start < b.start; } vector<Interval> merge(vector<Interval>& intervals) { vector<Interval> res; int size = intervals.size(); if (size <= 0) return res; sort(intervals.begin(), intervals.end(), cmp); cout << size << endl; res.push_back(intervals[0]); for (int i = 0; i < size; ++i) { if (res.back().end >= intervals[i].start) res.back().end = (res.back().end>intervals[i].end ? res.back().end : intervals[i].end); else res.push_back(intervals[i]); } return res; }};题目二:
Insert Intervals
Given a set of non-overlapping intervals, insert a new interval into the intervals (merge if necessary).
You may assume that the intervals were initially sorted according to their start times.
Example 1:
Given intervals [1,3],[6,9]
, insert and merge [2,5]
in as [1,5],[6,9]
.
Example 2:
Given [1,2],[3,5],[6,7],[8,10],[12,16]
, insert and merge [4,9]
in as [1,2],[3,10],[12,16]
.
This is because the new interval [4,9]
overlaps with [3,5],[6,7],[8,10]
.
class Solution {public: vector<Interval> insert(vector<Interval>& intervals, Interval newInterval) { vector<Interval> res; int size = intervals.size(); if (size == 0) { res.push_back(newInterval); return res; } int i = 0; while (i < size) { if (newInterval.start>intervals[i].end) { res.push_back(intervals[i]); } else if (newInterval.end < intervals[i].start) { res.push_back(newInterval); while (i < size) { res.push_back(intervals[i]); i++; } return res; } else { newInterval.start = min(newInterval.start, intervals[i].start); newInterval.end = max(newInterval.end, intervals[i].end); } i++; } res.push_back(newInterval); return res; }};
0 0
- leetcode—有关区间合并
- leetcode合并时间区间
- Merge Intervals 合并区间@LeetCode
- LeetCode | 56. Merge Intervals——合并区间
- Insert Interval (区间的覆盖合并) 【leetcode】
- LeetCode | Merge Intervals(合并区间间隔)
- [leetcode] 区间合并问题 Merge Interval
- LeetCode-56 Merge Intervals(合并区间)
- leetcode-56 Merge Intervals 合并区间
- LeetCode 56. Merge Intervals(合并区间)
- Leetcode 56 - Merge Intervals(区间合并)
- LeetCode 56. Merge Intervals 合并区间
- leetcode 56. Merge Intervals 区间合并
- Lintcode——合并区间
- 线段树—区间合并
- 区间合并
- 合并区间
- 合并区间
- MyBatis入门---parameterMap的使用及调用存储过程
- C/C++中if判断表达式的比较规范
- main函数执行前、后再执行的代码
- VC中如何获得音频
- Picasso基本使用
- leetcode—有关区间合并
- VC中实现语音(声音)数据的采集(附源代码)
- iOS项目在非测试设备上的安装方法(项目上线前)持续更。。。
- MySQL 数据(字段)类型
- 关于Mongodb的全面总结
- 关于VS2012与SQ 2008 R2连接问题
- Pdf转doc的感受
- CSS
- C# 获得对象属性和属性值 C#利用反射遍历对象的属性和属性值