|
1 | 1 | package com.fishercoder.solutions;
|
2 | 2 |
|
3 | 3 | import com.fishercoder.common.classes.Interval;
|
| 4 | + |
4 | 5 | import java.util.ArrayList;
|
5 | 6 | import java.util.Collections;
|
6 | 7 | import java.util.List;
|
7 | 8 |
|
8 |
| -/** |
9 |
| - * 56. Merge Intervals |
10 |
| - * |
11 |
| - * Given a collection of intervals, merge all overlapping intervals. |
12 |
| -
|
13 |
| - For example, |
14 |
| - Given [1,3],[2,6],[8,10],[15,18], |
15 |
| - return [1,6],[8,10],[15,18]. |
16 |
| - */ |
17 | 9 | public class _56 {
|
18 | 10 |
|
19 |
| - public static class Solution1 { |
20 |
| - public List<Interval> merge(List<Interval> intervals) { |
21 |
| - if (intervals.size() <= 1) { |
22 |
| - return intervals; |
23 |
| - } |
| 11 | + public static class Solution1 { |
| 12 | + public List<Interval> merge(List<Interval> intervals) { |
| 13 | + if (intervals.size() <= 1) { |
| 14 | + return intervals; |
| 15 | + } |
24 | 16 |
|
25 |
| - Collections.sort(intervals, (o1, o2) -> o1.start - o2.start); |
| 17 | + Collections.sort(intervals, (o1, o2) -> o1.start - o2.start); |
26 | 18 |
|
27 |
| - List<Interval> result = new ArrayList(); |
28 |
| - for (int i = 0; i < intervals.size(); i++) { |
29 |
| - int start = intervals.get(i).start; |
30 |
| - int end = intervals.get(i).end; |
31 |
| - while (i < intervals.size() && end >= intervals.get(i).start) { |
32 |
| - end = Math.max(end, intervals.get(i).end); |
33 |
| - i++; |
| 19 | + List<Interval> result = new ArrayList(); |
| 20 | + for (int i = 0; i < intervals.size(); i++) { |
| 21 | + int start = intervals.get(i).start; |
| 22 | + int end = intervals.get(i).end; |
| 23 | + while (i < intervals.size() && end >= intervals.get(i).start) { |
| 24 | + end = Math.max(end, intervals.get(i).end); |
| 25 | + i++; |
| 26 | + } |
| 27 | + result.add(new Interval(start, end)); |
| 28 | + i--; |
34 | 29 | }
|
35 |
| - result.add(new Interval(start, end)); |
36 |
| - i--; |
| 30 | + return result; |
37 | 31 | }
|
38 |
| - return result; |
39 | 32 | }
|
40 |
| - } |
41 | 33 |
|
42 | 34 | }
|
0 commit comments