zoukankan      html  css  js  c++  java
  • 【LeetCode】Merge Intervals

    Given a collection of intervals, merge all overlapping intervals.

    For example,
    Given [1,3],[2,6],[8,10],[15,18],
    return [1,6],[8,10],[15,18].

    public class Solution {
        public ArrayList<Interval> merge(ArrayList<Interval> intervals) {
            if(intervals.isEmpty())
                return intervals;
            Collections.sort(intervals, new IntervalComparator());
            Interval pre = intervals.get(0);
            for(int i=1;i<intervals.size();i++){
                Interval temp = intervals.get(i);
                int start = pre.start;
                int end = pre.end;
                if(temp.start>end){
                    pre=temp;
                    continue;
                }else if(temp.start==end){
                    pre.end=temp.end;
                    intervals.remove(temp);
                    i--;
                    continue;
                }else{
                    if(temp.start>=start&&temp.end>=end){
                        temp.start=start;
                        intervals.remove(pre);
                        pre = temp;
                        i--;
                        continue;
                        
                    }else if(temp.start>=start&&temp.end<=end){
                        temp.start=start;
                        temp.end=end;
                        intervals.remove(pre);
                        pre=temp;
                        i--;
                        continue;
                    }else if(temp.start<=start&&temp.end>=end){
                        intervals.remove(pre);
                        pre=temp;
                        i--;
                        continue;
                    }else if(temp.start<=start&&temp.end>start&&end>temp.end){
                        temp.end=end;
                        intervals.remove(pre);
                        pre=temp;
                        i--;
                        continue;
                    }
                }
            }
            return intervals;
            
        }
        
        
    }
    class IntervalComparator implements Comparator<Interval>
    {
        public int compare(Interval a, Interval b) {
            return a.start - b.start;
        }
    }
  • 相关阅读:
    【linux】驱动-13-阻塞与非阻塞
    【linux】驱动-12-并发与竞态
    【linux】驱动-11-gpio子系统
    【linux】驱动-10-pinctrl子系统
    【linux】驱动-9-设备树插件
    手写Java分页模块
    JDBC连接与自定义线程池
    类加载器
    网络编程之TCP
    网络编程之UDP
  • 原文地址:https://www.cnblogs.com/yixianyixian/p/3725889.html
Copyright © 2011-2022 走看看