zoukankan      html  css  js  c++  java
  • Insert Interval 面试题leetcode.

    刚开始做这个题的时候绕了好大的圈,对问题的分析不全面,没能考虑所有情况,做的很纠结。后来看了下大神的做法很受启发,改了改代码,最终提交了。

    public static ArrayList<Interval> insert(ArrayList<Interval> intervals, Interval newInterval) {
                ArrayList<Interval> ips=null;
                ips=new ArrayList<Interval>();
                int p=0;
                int q=intervals.size()-1;
                if(intervals.size()==0){
                    ips.add(newInterval);
                    return ips;
                }else{
                    if(intervals.get(p).start>newInterval.end){
                        ips.add(newInterval);
                        ips.addAll(intervals);
                    }else if(intervals.get(q).end<newInterval.start){
                        ips.addAll(intervals);
                        ips.add(newInterval);
                    }else {
                        while(p<=q){
                            if(intervals.get(q).start>newInterval.end){
                                q--;
                            }else if(intervals.get(p).end<newInterval.start){
                                ips.add(intervals.get(p));
                                p++;
                            }else {
                                break;
                            }
                            
                        }
                        if(p<=q){
                            ips.add(new Interval(
                                    intervals.get(p).start<newInterval.start?intervals.get(p).start:newInterval.start,
                                    intervals.get(q).end>newInterval.end?intervals.get(q).end:newInterval.end
                                                    ));
                            q++;
                        }else{
                            ips.add(newInterval);
                            q++;
                        }
                        
                        for(;q<intervals.size();q++){
                            ips.add(intervals.get(q));
                        }
                    }
                    
                    return ips;
                }
            }
  • 相关阅读:
    比较两个json数组是否有相同的选项
    使用gulp实现静态资源版本号替换
    Happy Halloween
    前端学习plan
    Python之函数式编程
    秋意浓
    2018给自己个plan,给自己一个小目标
    see goodbye with 2017
    杂记(一)
    The fruit in mid-summer
  • 原文地址:https://www.cnblogs.com/weilq/p/3628568.html
Copyright © 2011-2022 走看看