zoukankan      html  css  js  c++  java
  • leetcode 56 合并区间 JAVA

    题目:

    给出一个区间的集合,请合并所有重叠的区间。

    示例 1:

    输入: [[1,3],[2,6],[8,10],[15,18]]
    输出: [[1,6],[8,10],[15,18]]
    解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].
    

    示例 2:

    输入: [[1,4],[4,5]]
    输出: [[1,5]]
    解释: 区间 [1,4] 和 [4,5] 可被视为重叠区间。

    思路:

    先将给出的数组,对其按照start属性大小排序,然后当后者的start小于前者的end时,修改temp的start、end的值,否者result.add(temp).

    /**
     * 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; }
     * }
     */
    class Solution {
        public List<Interval> merge(List<Interval> intervals) {
            List<Interval> result = new ArrayList<>();
    
            if (intervals.size() <= 0) {
                return result;
            }
            Collections.sort(intervals, new Comparator<Interval>() { //按照start属性升序排序
                @Override
                public int compare(Interval o1, Interval o2) {
                    return o1.start - o2.start;
                }
            });
            
            //这里用一个临时变量存储合并的interval
            Interval temp = intervals.get(0);
            for (int i = 1; i < intervals.size(); ++i) {
                if (intervals.get(i).start <= temp.end) {
                    temp = new Interval(temp.start, Math.max(temp.end,intervals.get(i).end));
                } else {
                    result.add(temp);
                    temp = intervals.get(i);
                }
            }
            result.add(temp);
            return result;
        }
    }
  • 相关阅读:
    使用 ASP.NET 2.0 ObjectDataSource 控件

    掌握 ASP.NET 之路:自定义实体类简介
    将 JavaScript 与 ASP.NET 2.0 配合使用
    C# 程序的通用结构
    实例化web service里类的实例
    Web服务枚举组件不可用 修复 (转载)
    09年初步学习计划
    Javascript return false的作用
    如何识别 SQL Server 的版本
  • 原文地址:https://www.cnblogs.com/yanhowever/p/10588764.html
Copyright © 2011-2022 走看看