LeetCode_57---Insert Interval
来源:互联网 发布:u盘pe 知乎 编辑:程序博客网 时间:2024/05/25 05:34
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]
.
Code:
import java.util.ArrayList;import java.util.LinkedList;import java.util.List;/** * @author MohnSnow * @time 2015年6月26日 下午4:10:08 * */public class LeetCode57 {/** * @param argsmengdx * -fnst */public static class Interval {int start;int end;Interval() {start = 0;end = 0;}Interval(int s, int e) {start = s;end = e;}public String toString() {String result = "start:" + start + " end: " + end;return result;}}//616msAC---一次性优化通过public static List<Interval> insert(List<Interval> intervals,Interval newInterval) {System.out.println("intervals: " + intervals);System.out.println("newInterval: " + newInterval);List<Interval> result = new ArrayList<Interval>();result.add(newInterval);for (Interval inter : intervals) {if (newInterval.end < inter.start) {newInterval = inter;result.add(newInterval);System.out.println("result1111: " + result);} else if (newInterval.start > inter.end) {int temp = newInterval.start;newInterval.start = inter.start;inter.start = temp;temp = newInterval.end;newInterval.end = inter.end;inter.end = temp;newInterval = inter;result.add(newInterval);System.out.println("result2222: " + result);} else {newInterval.end = Math.max(newInterval.end, inter.end);newInterval.start = Math.min(newInterval.start, inter.start);System.out.println("result3333: " + result);}}return result;}public static void main(String[] args) {Interval a = new Interval(2, 3);Interval b = new Interval(6, 9);Interval c = new Interval(9, 19);Interval d = new Interval(15, 18);List<Interval> intervals = new LinkedList<Interval>();intervals.add(a);intervals.add(b);intervals.add(c);intervals.add(d);Interval newInterval = new Interval(10, 11);System.out.println("merge: " + insert(intervals, newInterval));}}
0 0
- LeetCode_57---Insert Interval
- Insert Interval
- Insert Interval
- Insert Interval
- Insert Interval
- Insert Interval
- Insert Interval
- Insert Interval
- Insert Interval
- Insert Interval
- Insert Interval
- Insert Interval
- Insert Interval
- Insert Interval
- Insert Interval
- Insert Interval
- Insert Interval
- Insert Interval
- 面试题11:数值的整数次方
- 在 linux 下使用 CMake 构建应用程序
- 打开app后Edittext自动获取焦点并弹出输入法的方法
- Unity3d_UGUI虚拟摇杆(简易)
- 关闭程序立即重启出现Address already in use
- LeetCode_57---Insert Interval
- 11个超棒的iOS开发学习网站
- A new starting ...
- Unity3D读取XML文档信息
- Office Tips 3 - 如何设置电脑屏幕背景色为淡绿色
- android 一个很漂亮的控件ObservableScrollView(含片段代码和源码)
- 让Struts2.3.24支持JDK1.5
- “标准”宏与函数模板
- 《C#程序设计》第四次作业