lintcode 容易题:Insert Interval 插入区间
2015-10-15 20:29
330 查看
题目:
在列表中插入一个新的区间,你要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。
样例
插入区间[2, 5] 到 [[1,2], [5,9]],我们得到 [[1,9]]。
插入区间[3, 4] 到 [[1,2], [5,9]],我们得到 [[1,2], [3,4], [5,9]]。
解题:
这个不会,复制的九章程序,为什么在LeetCode上是Hard,在这里是easy,思想其实很简单,但是理解不透。
Java程序:
View Code
总耗时: 3011 ms
Python程序:
插入区间
给出一个无重叠的按照区间起始端点排序的区间列表。在列表中插入一个新的区间,你要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。
样例
插入区间[2, 5] 到 [[1,2], [5,9]],我们得到 [[1,9]]。
插入区间[3, 4] 到 [[1,2], [5,9]],我们得到 [[1,2], [3,4], [5,9]]。
解题:
这个不会,复制的九章程序,为什么在LeetCode上是Hard,在这里是easy,思想其实很简单,但是理解不透。
Java程序:
/** * Definition of Interval: * public classs Interval { * int start, end; * Interval(int start, int end) { * this.start = start; * this.end = end; * } */ class Solution { /** * Insert newInterval into intervals. * @param intervals: Sorted interval list. * @param newInterval: A new interval. * @return: A new sorted interval list. */ public ArrayList<Interval> insert(ArrayList<Interval> intervals, Interval newInterval) { ArrayList<Interval> result = new ArrayList<Interval>(); // write your code here if(intervals==null ||intervals.size()<=0){ result.add(newInterval); return result; } int insertPos = 0; for(int i=0;i<intervals.size();i++){ Interval curt = intervals.get(i); if(curt.end<newInterval.start){ result.add(curt); insertPos++; } else if(curt.start>newInterval.end){ result.add(curt); }else{ newInterval.start = Math.min(curt.start,newInterval.start); newInterval.end = Math.max(curt.end,newInterval.end); } } result.add(insertPos,newInterval); return result; } }
View Code
总耗时: 3011 ms
Python程序:
相关文章推荐
- [sicily]1146. 采药
- 关于Scanner类中delimiter在io流中读取的使用
- KLT光流法及其特征点检测方法
- 植被波谱特征总结
- UIKit Dynamics应用
- Qt Quick 事件处理之信号与槽
- 我的IOS学习历程 - 第六天2
- Android开发手记(9) DatePickerDialog 和 TimePickerDialog
- redis3.0集群使用发现的一些问题
- 月光微博客
- 遥感干旱反演方法汇总
- Qt Quick 之 Hello World 图文详解
- Android Studio下载、使用技巧及快捷键汇总
- POJ 1742 Coins(多重背包,优化)
- 1031. 查验身份证(15)
- IE的浏览器模式和文档模式
- 利用色光三原色调整图片颜色
- 初学者用thinkphp写的一个有文章分享网站
- Bump Map
- 遥感在气象中的信息提取