• 合并区间


    给出若干闭合区间,合并所有重叠的部分。

    给出的区间列表 => 合并后的区间列表:

    [                     [
      [1, 3],               [1, 6],
      [2, 6],      =>       [8, 10],
      [8, 10],              [15, 18]
      [15, 18]            ]
    ]
    
    挑战

    O(n log n) 的时间和 O(1) 的额外空间。

    解题思路:这道题在最开始看的时候误以为是已经排好序的,结果直接就分情况讨论了,当然程序是妥妥没有过。所以这样的题目印象中还是比较常见的,首先按照左端点进行排序,排好序以后判断右端点与下一个区间的左端点的关系来决定是否合并。

    当然,我在这个过程中发现了java更加神奇的地方:1、java的Collections.sort函数及其相关函数调用;2、java中for的新用法。关于这两点其他随笔中也有总结

    /**
     * Definition of Interval:
     * public class Interval {
     *     int start, end;
     *     Interval(int start, int end) {
     *         this.start = start;
     *         this.end = end;
     *     }
     */
    
    class Solution {
        /**
         * @param intervals: Sorted interval list.
         * @return: A new sorted interval list.
         */
        public List<Interval> merge(List<Interval> intervals) {
            // write your code here
            List<Interval> result = new LinkedList<>();
            if(intervals == null || intervals.size()<1){
                return result;
            }
            Collections.sort(intervals,new Comparator<Interval>(){
                @Override
                public int compare(Interval o1,Interval o2){
                    return   o1.start - o2.start;
                }
            });
            
            Interval prev = null;
            for (Interval item : intervals) {
    
                if (prev == null || prev.end < item.start) {
                    result.add(item);
                    prev = item;
                } else if (prev.end < item.end) {
                    prev.end = item.end;
                }
            }
    
            return result;
        }
    }
    View Code
  • 相关阅读:
    Sqlite框架Delphi10.3(07)
    FastReport 6.8.11在Delphi10.3上的安装
    Delphi 中,InputQuery 函数的妙用
    Javaday25(sax解析xml,json,设计模式)
    并发学习第五篇——volatile关键字
    并发学习第四篇——synchronized关键字
    并发学习第二篇——Thread
    并发学习第一篇——Runnable
    git-仓库迁移并保留commit log
    并发编程理论基础二——画图理解
  • 原文地址:https://www.cnblogs.com/wangnanabuaa/p/4996483.html
Copyright © 2020-2023  润新知