leetcode 57. Insert Interval
2017-06-15 22:16
381 查看
这一题似乎没有 http://blog.csdn.net/hackerzer/article/details/73253017 leetcode 56 难,不用排序,直接list插入就可以。
import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Comparator; /** * 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 static void main(String[] args){ Solution s = new Solution(); Interval in1 = new Interval(1,2); Interval in2 = new Interval(3,5); Interval in3 = new Interval(6,7); Interval in4 = new Interval(8,10); Interval in5 = new Interval(12,16); Interval in6 = new Interval(4,9); List<Interval> ins = new ArrayList<Interval>(); ins.add(in1); ins.add(in2); ins.add(in3); ins.add(in4); ins.add(in5); s.insert(ins, in6); } public List<Interval> insert(List<Interval> intervals, Interval newInterval) { int len = intervals.size(); if(len==0){ intervals.add(newInterval); }else{ int k=-1; for(int i=0;i<len;i++){ if(intervals.get(i).start>newInterval.start){ k=i; break; } } if(k==-1) k = len; // System.out.println(k); intervals.add(k, newInterval); // System.out.println(intervals.size()); // for(Interval inte:intervals){ // System.out.print(inte.start+" "); // System.out.println(inte.end); // } } List<Interval> res = merge(intervals); // for(Interval inst:res){ // System.out.println(inst.start+" "+ inst.end); // } return res; } public List<Interval> merge(List<Interval> intervals) { List<Interval> res = new ArrayList<Interval>(); int len = intervals.size(); if(len==0) return res; // Comparator cmp = new mycmp(); // Collections.sort(intervals,cmp); int pre_s = intervals.get(0).start; int pre_e = intervals.get(0).end; for(int i=1;i<len;i++){ Interval inter = intervals.get(i); int cur_s = inter.start; int cur_e = inter.end; if(cur_s<=pre_e&&cur_e>pre_e){ pre_e = cur_e; }else if(cur_s>pre_e){ Interval new_in = new Interval(pre_s,pre_e); res.add(new_in); pre_s = cur_s; pre_e = cur_e; } } Interval new_in = new Interval(pre_s,pre_e); res.add(new_in); return res; } }
相关文章推荐
- *Leetcode 57. Insert Interval
- [leetcode] 57. Insert Interval 解题报告
- LeetCode 57. Insert Interval(插入区间)
- [LeetCode] 57. Insert Interval 插入区间
- LeetCode --- 57. Insert Interval
- [Leetcode] 57. Insert Interval
- [Leetcode] 57. Insert Interval
- leetcode hard模式专杀之57. Insert Interval
- LeetCode 57. Insert Interval 题解
- leetcode 57. Insert Interval
- LeetCode 57. Insert Interval
- leetcode 57. Insert Interval
- leetcode-57. Insert Interval
- LeetCode | 57. Insert Interval
- 【LeetCode】57. Insert Interval
- LeetCode 57. Insert Interval
- [LeetCode] 57. Insert Interval
- leetcode.array--57. Insert Interval
- Leetcode 56. Merge Intervals && 57. Insert Interval(Hard)
- LeetCode 57. Insert Interval---Python实现