leetcode 57. Insert Interval
来源:互联网 发布:淘宝网秋装新款风衣 编辑:程序博客网 时间:2024/05/22 14:28
这一题似乎没有 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; }}
阅读全文
0 0
- 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]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
- 消息队列Linux
- Fit项目图片上传和云存储的调通
- 最新react弃用了jsxtransformer了那jsx还能用
- Centos7下安装zookeeper以及配置文件详解
- 计算机网络体系结构
- leetcode 57. Insert Interval
- open call hierarchy
- 剑指Offer——(30)连续子数组的最大和
- iOS学习笔记-077.核心动画03——CAKeyframeAnimation(关键帧动画)
- Visual Studio 2015中ucrtbased.dll丢失
- python3安装.whl文件
- 数据库SQL去重,保留一条数据
- Maven日常使用总结
- 一个页面从输入URL到页面加载显示完成,这个过程发生了什么?