(lintcode)第30题 插入区间
来源:互联网 发布:windows开机启动后黑屏 编辑:程序博客网 时间:2024/05/22 08:09
给出一个无重叠的按照区间起始端点排序的区间列表。
在列表中插入一个新的区间,你要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。
样例
插入区间[2, 5] 到 [[1,2], [5,9]],我们得到 [[1,9]]。
插入区间[3, 4] 到 [[1,2], [5,9]],我们得到 [[1,2], [3,4], [5,9]]。
思路:先加入list正确的位置,再合并可以合并的项,代码写得烂且长,谅解。
/** * Definition of Interval: * public classs Interval { * int start, end; * Interval(int start, int end) { * this.start = start; * this.end = end; * } */public class Solution { /* * @param intervals: Sorted interval list. * @param newInterval: new interval. * @return: A new interval list. */ public List<Interval> insert(List<Interval> intervals, Interval newInterval) { // write your code here int flag=0; int i; //加入区间 if(intervals.size()>0){ for(i=0;i<intervals.size();i++){ if(intervals.get(i).start<newInterval.start){ continue; } if(intervals.get(i).start>newInterval.start){ intervals.add(i,newInterval); flag=1; break; } if(intervals.get(i).start==newInterval.start){ if(intervals.get(i).end<=newInterval.end){ continue; }else{ intervals.add(i,newInterval); flag=1; break; } } }} else{ intervals.add(0,newInterval); return intervals; } if(flag==0){ intervals.add(intervals.size(),newInterval); } //合并区间 for(i=0;i<intervals.size()-1;i++){ int f=i; int s=i+1; if(intervals.get(f).end>=intervals.get(s).start&&intervals.get(f).end<=intervals.get(s).end){ Interval in=new Interval(intervals.get(f).start,intervals.get(s).end); intervals.add(s+1,in); intervals.remove(f); intervals.remove(f); i--; continue; }else if(intervals.get(f).end>=intervals.get(s).end){ intervals.remove(s); i--; continue; } } return intervals; }}
阅读全文
0 0
- (lintcode)第30题 插入区间
- lintcode(30)插入区间
- LintCode 30 插入区间
- lintcode-插入区间
- 插入区间 lintcode
- LintCode 插入区间
- LintCode【插入区间】
- Lintcode 插入区间
- LintCode--插入区间
- LintCode 插入区间
- Lintcode:插入区间
- 【LintCode】Insert Intervals 插入区间
- (lintcode)第11题二叉查找树中搜索区间
- lintcode 第12题
- LintCode 第423题
- (lintcode)第3题统计数字
- (lintcode)第17题 子集
- LintCode 第420题 报数
- 数据结构——矩阵及其常用操作
- 线程安全性
- 论SOA架构的几种主要开发方式
- 学习笔记——中国剩余定理(CRT)
- jstack应用实例,java方法调用阻塞实例,dubbo创建消费者阻塞。
- (lintcode)第30题 插入区间
- MaxCompute复杂数据分布的查询优化实践
- 透视“共享单车技术含量”
- 自定义ItemDecoration这个问题你真的注意到了吗
- Gradle sync failed: com.android.tools.idea.gradle.project.model.AndroidModuleModel.getMainArtifact()
- 52. N-Queens II
- Android主题换肤 无缝切换
- 洛谷T13776 等值首尾和(add)
- 单源最短路径问题(Bellman-Ford算法)