• [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 }
  • 相关阅读:
    PHP (20140519)
    PHP (20140516)
    js(20140517)在JS方法中返回多个值的三种方法
    PHP (20140515)
    PHP (20140514)
    Java内网发送邮件
    每日一“酷”之Cookie
    每日一“酷”之Queue
    每日一“酷”之pprint
    每日一“酷”之copy
  • 原文地址:https://www.cnblogs.com/huntfor/p/3868954.html
Copyright © 2020-2023  润新知