zoukankan      html  css  js  c++  java
  • leetcode:insert interval

    1、

    给出一个无重叠的按照区间起始端点排序的区间列表。

    在列表中插入一个新的区间,你要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。

    插入区间[2, 5] 到 [[1,2], [5,9]],我们得到 [[1,9]]

    插入区间[3, 4] 到 [[1,2], [5,9]],我们得到 [[1,2], [3,4], [5,9]]

    2、思路:

      1、 在头插入

      2、在中间插入

      3、在尾插入。

    第1,3好处理,直接判断是在头还是在尾,直接加入就好。 然后第2种需要判断插入后的区间是否可以和其他的区间合并。 所以要扫描一遍,判断他前后有没有可以合并的区间,然后把他们合并在一起。

    3、代码:

      

    /**
     * Definition of Interval:
     * public classs Interval {
     *     int start, end;
     *     Interval(int start, int end) {
     *         this.start = start;
     *         this.end = end;
     *     }
     */
    
    class Solution {
        /**
         * Insert newInterval into intervals.
         * @param intervals: Sorted interval list.
         * @param newInterval: A new interval.
         * @return: A new sorted interval list.
         */
        public ArrayList<Interval> insert(ArrayList<Interval> intervals, Interval newInterval) {
           if (newInterval == null || intervals == null) {
                return intervals;
            }
            ArrayList<Interval> results = new ArrayList<Interval>();
            int insertPos = 0;
            for (Interval interval : intervals) {
                if (interval.end < newInterval.start) {
                    results.add(interval);
                    insertPos++;
                } else if (interval.start > newInterval.end) {
                    results.add(interval);
                } else {
                    newInterval.start = Math.min(interval.start, newInterval.start);
                    newInterval.end = Math.max(interval.end, newInterval.end);
                }
            }
            results.add(insertPos, newInterval);
            return results;
        }
    }
    工作小总结,有错请指出,谢谢。
  • 相关阅读:
    service
    Specify the input method type
    添加机型
    高数公式
    MacOS 常用终端命令大全
    Linux-常用命令大全
    Mac系统下利用ADB命令使用
    iOS工程师学习Android开发----AndroidStudio环境准备
    封装socket 到vue2.x 使用
    记录一次因为OutOfMemoryError而发现的Excel文件导入慢的优化思路
  • 原文地址:https://www.cnblogs.com/zilanghuo/p/5287829.html
Copyright © 2011-2022 走看看