|
24 | 24 | */
|
25 | 25 | public class _352 {
|
26 | 26 |
|
27 |
| - public static class SummaryRanges { |
| 27 | + public static class Solution1 { |
| 28 | + public static class SummaryRanges { |
28 | 29 |
|
29 |
| - /** |
30 |
| - * Use treemap, key is the start of the interval. |
31 |
| - */ |
32 |
| - TreeMap<Integer, Interval> treeMap; |
| 30 | + /** |
| 31 | + * Use treemap, key is the start of the interval. |
| 32 | + */ |
| 33 | + TreeMap<Integer, Interval> treeMap; |
33 | 34 |
|
34 |
| - /** |
35 |
| - * Initialize your data structure here. |
36 |
| - */ |
37 |
| - public SummaryRanges() { |
38 |
| - treeMap = new TreeMap<>(); |
39 |
| - } |
40 |
| - |
41 |
| - public void addNum(int val) { |
42 |
| - if (treeMap.containsKey(val)) { |
43 |
| - return; |
| 35 | + /** |
| 36 | + * Initialize your data structure here. |
| 37 | + */ |
| 38 | + public SummaryRanges() { |
| 39 | + treeMap = new TreeMap<>(); |
44 | 40 | }
|
45 |
| - Integer lower = treeMap.lowerKey(val); |
46 |
| - Integer higher = treeMap.higherKey(val); |
47 |
| - if (lower != null && higher != null && treeMap.get(lower).end + 1 == val && higher == val + 1) { |
48 |
| - treeMap.get(lower).end = treeMap.get(higher).end; |
49 |
| - treeMap.remove(higher); |
50 |
| - } else if (lower != null && treeMap.get(lower).end + 1 >= val) { |
51 |
| - treeMap.get(lower).end = Math.max(treeMap.get(lower).end, val); |
52 |
| - } else if (higher != null && higher == val + 1) { |
53 |
| - treeMap.put(val, new Interval(val, treeMap.get(higher).end)); |
54 |
| - treeMap.remove(higher); |
55 |
| - } else { |
56 |
| - treeMap.put(val, new Interval(val, val)); |
| 41 | + |
| 42 | + public void addNum(int val) { |
| 43 | + if (treeMap.containsKey(val)) { |
| 44 | + return; |
| 45 | + } |
| 46 | + Integer lower = treeMap.lowerKey(val); |
| 47 | + Integer higher = treeMap.higherKey(val); |
| 48 | + if (lower != null |
| 49 | + && higher != null |
| 50 | + && treeMap.get(lower).end + 1 == val |
| 51 | + && higher == val + 1) { |
| 52 | + treeMap.get(lower).end = treeMap.get(higher).end; |
| 53 | + treeMap.remove(higher); |
| 54 | + } else if (lower != null && treeMap.get(lower).end + 1 >= val) { |
| 55 | + treeMap.get(lower).end = Math.max(treeMap.get(lower).end, val); |
| 56 | + } else if (higher != null && higher == val + 1) { |
| 57 | + treeMap.put(val, new Interval(val, treeMap.get(higher).end)); |
| 58 | + treeMap.remove(higher); |
| 59 | + } else { |
| 60 | + treeMap.put(val, new Interval(val, val)); |
| 61 | + } |
57 | 62 | }
|
58 |
| - } |
59 | 63 |
|
60 |
| - public List<Interval> getIntervals() { |
61 |
| - return new ArrayList<>(treeMap.values()); |
| 64 | + public List<Interval> getIntervals() { |
| 65 | + return new ArrayList<>(treeMap.values()); |
| 66 | + } |
62 | 67 | }
|
63 | 68 | }
|
64 | 69 | }
|
0 commit comments