lintcode-插入区间
来源:互联网 发布:mac使用github pages 编辑:程序博客网 时间:2024/06/01 23:50
给出一个无重叠的按照区间起始端点排序的区间列表。
在列表中插入一个新的区间,你要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。
您在真实的面试中是否遇到过这个题?样例
插入区间[2, 5] 到 [[1,2], [5,9]],我们得到[[1,9]]。
插入区间[3, 4] 到[[1,2], [5,9]],我们得到 [[1,2], [3,4], [5,9]]。
/** * Definition of Interval: * classs Interval { * int start, end; * Interval(int start, int end) { * this->start = start; * this->end = end; * } */class Solution {public: bool cmp(Interval &a,Interval &b){ if(a.start==b.start) return a.end>b.end; return a.start>b.start; } vector<Interval> insert(vector<Interval> &intervals, Interval newInterval) { if(intervals.empty()){ intervals.push_back(newInterval); return intervals; } int i=0,size=intervals.size(); while(i<size&&cmp(newInterval,intervals[i])){ ++i; } intervals.insert(intervals.begin()+i,newInterval); size=intervals.size(); for(int i=0;i<size-1;++i){ if(intervals[i+1].start>=intervals[i].start&&intervals[i+1].end<=intervals[i].end){ intervals.erase(intervals.begin()+i+1); --size; --i; } else if(intervals[i+1].start<=intervals[i].end){ intervals[i].end=intervals[i+1].end; intervals.erase(intervals.begin()+i+1); --size; --i; } } return intervals; }};
0 0
- lintcode-插入区间
- 插入区间 lintcode
- LintCode 插入区间
- LintCode【插入区间】
- lintcode(30)插入区间
- LintCode 30 插入区间
- Lintcode 插入区间
- LintCode--插入区间
- LintCode 插入区间
- Lintcode:插入区间
- 【LintCode】Insert Intervals 插入区间
- (lintcode)第30题 插入区间
- LintCode-搜索区间
- lintcode-156-合并区间
- lintcode-搜索区间-61
- Lintcode搜索区间
- LintCode : 搜索区间
- LintCode:搜索区间
- android调节屏幕亮度(包括只修改应用程序和修改系统)
- mysql_thread_init()
- mysql数据库常用的基本SQL语句--数据库表操作
- Qt Scene Graph渲染方式在不同系统的差异
- Eclipse中新建工程出现红色感叹号以及appcompat-v7编译错误
- lintcode-插入区间
- Android开发---记事本(二)
- fragment+RadioGroup实现底部导航栏 多个 fragment 重影问题
- Leet Code 4 Median of Two Sorted Arrays
- Divisibility by Eight
- SpringMVC的@ModelAttribute和@RequestParam、@PathVariable、@CookieValue、@SessionAttributes
- 【OpenCV 基础】Mat和IplImage间的相互转换
- java实现最基础的中国5角星
- Gradle文件结构介绍