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

    [解题思路]

    这里使用Insert interval的解题过程,将待合并的interval依次插入

     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     public ArrayList<Interval> merge(ArrayList<Interval> intervals) {
    12         // Start typing your Java solution below
    13         // DO NOT write main() function
    14         ArrayList<Interval> result = new ArrayList<Interval>();
    15         for(int i = 0; i < intervals.size(); i++){
    16             result = insert(result, intervals.get(i));
    17         }
    18         return result;
    19     }
    20     
    21     public ArrayList<Interval> insert(ArrayList<Interval> intervals,
    22             Interval newInterval) {
    23         ArrayList<Interval> result = new ArrayList<Interval>();
    24         for (int i = 0; i < intervals.size(); i++) {
    25             Interval tmp = intervals.get(i);
    26             if (newInterval.end < tmp.start) {
    27                 result.add(newInterval);
    28                 for(int j = i; j < intervals.size(); j++){
    29                     result.add(intervals.get(j));
    30                 }
    31                 return result;
    32             } else if (newInterval.start > tmp.end) {
    33                 result.add(tmp);
    34                 continue;
    35             } else {
    36                 newInterval.start = Math.min(tmp.start, newInterval.start);
    37                 newInterval.end = Math.max(tmp.end, newInterval.end);
    38             }
    39         }
    40         result.add(newInterval);
    41         return result;
    42     }
    43 }
  • 相关阅读:
    【Struts 动态表单】DynaActionForm
    【Struts 分派Action】DispatchAction
    【struts 报错】 No action config found for the specified url
    【Struts APP_PATH】StartSystemListener
    【Struts 编码】
    【Struts 基础案例】
    28. 实现 strStr()
    14. 最长公共前缀
    2. 两数相加
    15. 三数之和
  • 原文地址:https://www.cnblogs.com/feiling/p/3254135.html
Copyright © 2011-2022 走看看