zoukankan      html  css  js  c++  java
  • [leetcode]Merge Intervals

    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].

    算法思路:

    将intervals按照start进行排序,然后建立一个空的list,把intervals的元素逐个插入并做合并操作。

    值得注意的是:如果intervals的待插入元素能与list的元素合并,则一定是与最后一个合并。think about it

    【吐槽】:这是第一遍时候想到的算法,还是很不错的,单次遍历,只不过当时不会用Collections.sort()自己手动的排序了。o(╯□╰)o

     1 /**
     2  * Definition for an interval.
     3  * public class Interval {
     4  *     int start;
     5  *     int end;
     6  *     Interval() { start = 0; end = 0; }
     7  *     Interval(int s, int e) { start = s; end = e; }
     8  * }
     9  */
    10 public class Solution {
    11     List<Interval> res = new ArrayList<Interval>();
    12     public List<Interval> merge(List<Interval> intervals) {
    13         if(intervals == null || intervals.size() == 0) return res;
    14         Collections.sort(intervals, new Comparator<Interval>(){
    15             public int compare(Interval a,Interval b){
    16                 return a.start - b.start;
    17             }
    18         });
    19         List<Interval> list = new ArrayList<Interval>();
    20         list.add(intervals.get(0));
    21         for(int i = 1; i < intervals.size(); i++){
    22             Interval last = list.get(list.size() - 1);
    23             Interval thus = intervals.get(i);
    24             if(thus.start <= last.end){
    25                 last.end = thus.end > last.end ? thus.end : last.end;
    26             }else{
    27                 list.add(thus);
    28             }
    29         }
    30         return list;
    31     }
    32 }
  • 相关阅读:
    Win10上使用Linux Subsystem配置cuckoo sandbox
    Windows下编译OpenSSL
    64位使用windbg获取Shadow SSDT
    [转载]VS2010怎样打开VS2013或者VS2015建立的工程
    Critical Regions和Guarded Regions区别
    Windows7 x64 了解堆
    网DAI之家简单爬取
    javascript 练习题目答案2
    javascript 练习题目答案1
    javascript 练习题目答案
  • 原文地址:https://www.cnblogs.com/huntfor/p/3868954.html
Copyright © 2011-2022 走看看