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;
                }
            }
  • 相关阅读:
    android 自定义日历控件
    android 常用类
    真假空格风波
    设计模式的初衷---“委托”有感
    pymysql.err.InterfaceError: (0, '')
    微信文章收藏到有道云笔记PC版只保留了标题
    SQL Server数据库字典生成SQL
    nhibernate常见错误
    NUnit
    使用ffmpeg截取视频
  • 原文地址:https://www.cnblogs.com/weilq/p/3628568.html
Copyright © 2011-2022 走看看