leetcode: Merge Intervals
来源:互联网 发布:linux三个启动命令 编辑:程序博客网 时间:2024/05/29 02:29
思路很简单,首先对输入list排序,使其内数据按照start的大小从小到大排列。 此时当一个区间能够插入的时候,该区间的start肯定要小于当前区间的end,否则该区间和该区间之后的区间都不可插入(因为按照start上升排列),故当前区间可以插入结果列表。 利用这一思想动态更新当前区间并判断插入即可。 需要注意的是
1. Java 要对ArrayList排序,利用Collection.sort()方法,还需要重写Comparator类的compare(Object o1,Object o2)方法;而c++只需重写sort的cmp方法即可
2. 向结果的ArrayList插入Interval时要插入一个新生成的对象,否则对插入对象的修改也会直接改变结果列表中插入的结果的值(ArrayList常插入int会忽视这点)
/** * Definition for an interval. * public class Interval { * int start; * int end; * Interval() { start = 0; end = 0; } * Interval(int s, int e) { start = s; end = e; } * } */public class Solution { public ArrayList<Interval> merge(ArrayList<Interval> intervals) { ArrayList<Interval> res = new ArrayList<Interval>(); if( intervals == null || intervals.size()==0 ) { return res; } Interval tmp = new Interval(-1,-1); Collections.sort(intervals, new Comparator() { @Override public int compare(Object o1, Object o2) { return ((Interval)o1).start-((Interval)o2).start; } }); for( Interval it : intervals ) { if( tmp.start==-1 && tmp.end==-1 ) { tmp.start = it.start; tmp.end = it.end; } else { if( it.start > tmp.end ) { res.add(new Interval(tmp.start,tmp.end)); tmp.start = it.start; tmp.end = it.end; } else { tmp.start = Math.min(tmp.start,it.start); tmp.end = Math.max(tmp.end,it.end); } } } res.add(tmp); return res; }}
0 0
- LeetCode: Merge Intervals
- LeetCode Merge Intervals
- LeetCode: Merge Intervals
- [Leetcode] Merge Intervals
- leetcode 28: Merge Intervals
- Leetcode: Merge Intervals
- [LeetCode] Merge Intervals
- [LeetCode]Merge Intervals
- leetcode merge intervals
- [leetcode]Merge Intervals
- LeetCode-Merge Intervals
- [leetcode] Merge Intervals
- LeetCode - Merge Intervals
- 【leetcode】Merge Intervals
- leetcode Merge Intervals
- LeetCode Merge Intervals
- [LeetCode] Merge Intervals
- LeetCode | Merge Intervals
- sql脚本的不同的查询
- 笔记本桌面源文件如何找回
- 设计和编写设备驱动的一般方法
- 滚动条控件
- State(状态模式)
- leetcode: Merge Intervals
- 当vector中存储的类型为指针时,vector.clear()的执行结果
- eclipse中使用tomcat调试web
- HDU 1171 Big Event in HDU (母函数)
- XMPP学习--建立管理类
- DirectUI再思考
- android 中FragmentActivity中模拟返回键返回上一个Activity效果
- Oracle根据日志文件查询SQL
- Rete算法简要描述