首页 > 其他 > 详细

LeetCode Insert Interval

时间:2015-01-31 00:00:37      阅读:348      评论:0      收藏:0      [点我收藏+]

Given a set of non-overlapping intervals, insert a new interval into the intervals (merge if necessary).

You may assume that the intervals were initially sorted according to their start times.

Example 1:
Given intervals [1,3],[6,9], insert and merge [2,5] in as [1,5],[6,9].

Example 2:
Given [1,2],[3,5],[6,7],[8,10],[12,16], insert and merge [4,9] in as [1,2],[3,10],[12,16].

This is because the new interval [4,9] overlaps with [3,5],[6,7],[8,10].

 

 1  class intervalComparator implements Comparator<Interval>{
 2     @Override
 3     public int compare(Interval o1, Interval o2) {
 4         return o1.start-o2.start;
 5     }
 6 }
 7 public class Solution {
 8     public List<Interval> merge(List<Interval> intervals) {
 9         List<Interval> result = new ArrayList<Interval>();
10         if (intervals.size() == 0) {
11             return result;
12         }
13         Collections.sort(intervals, new intervalComparator());
14         Interval first = intervals.get(0);
15         Interval next;
16         for (int i = 1; i <intervals.size() ; i++) {
17             next = intervals.get(i);
18             if (first.end < next.start) {
19                 result.add(first);
20                 first = next;
21             } else {
22                 if (first.end < next.end) {
23                     first.end = next.end;
24                 } 
25             }
26         }
27         result.add(first);
28         return result;
29     }
30 
31     public List<Interval> insert(List<Interval> intervals, Interval newInterval) {
32         List<Interval> result = new ArrayList<Interval>(intervals);
33         result.add(newInterval);
34         return merge(result);
35     }
36 }

 

LeetCode Insert Interval

原文:http://www.cnblogs.com/birdhack/p/4263356.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!