Skip to content

Commit c0356e3

Browse files
refactor 56
1 parent f79d6e4 commit c0356e3

File tree

2 files changed

+41
-54
lines changed

2 files changed

+41
-54
lines changed

src/main/java/com/fishercoder/solutions/_56.java

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,36 @@
11
package com.fishercoder.solutions;
22

3-
import com.fishercoder.common.classes.Interval;
4-
53
import java.util.ArrayList;
6-
import java.util.Collections;
4+
import java.util.Arrays;
75
import java.util.List;
86

97
public class _56 {
108

119
public static class Solution1 {
12-
public List<Interval> merge(List<Interval> intervals) {
13-
if (intervals.size() <= 1) {
10+
public int[][] merge(int[][] intervals) {
11+
if (intervals.length <= 1) {
1412
return intervals;
1513
}
1614

17-
Collections.sort(intervals, (o1, o2) -> o1.start - o2.start);
15+
Arrays.sort(intervals, (o1, o2) -> o1[0] - o2[0]);
1816

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);
17+
List<int[]> result = new ArrayList();
18+
for (int i = 0; i < intervals.length; i++) {
19+
int start = intervals[i][0];
20+
int end = intervals[i][1];
21+
while (i < intervals.length && end >= intervals[i][0]) {
22+
end = Math.max(end, intervals[i][1]);
2523
i++;
2624
}
27-
result.add(new Interval(start, end));
25+
result.add(new int[]{start, end});
2826
i--;
2927
}
30-
return result;
28+
int[][] finalResult = new int[result.size()][2];
29+
for (int i = 0; i < result.size(); i++) {
30+
finalResult[i][0] = result.get(i)[0];
31+
finalResult[i][1] = result.get(i)[1];
32+
}
33+
return finalResult;
3134
}
3235
}
3336

Lines changed: 24 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,51 +1,35 @@
11
package com.fishercoder;
22

3-
import com.fishercoder.common.classes.Interval;
43
import com.fishercoder.solutions._56;
5-
import java.util.ArrayList;
6-
import java.util.List;
74
import org.junit.BeforeClass;
85
import org.junit.Test;
96

107
import static org.junit.Assert.assertEquals;
118

129
public class _56Test {
13-
private static _56.Solution1 solution1;
14-
private static List<Interval> intervals;
15-
private static List<Interval> expected;
10+
private static _56.Solution1 solution1;
11+
private static int[][] intervals;
12+
private static int[][] expected;
13+
14+
@BeforeClass
15+
public static void setup() {
16+
solution1 = new _56.Solution1();
17+
}
18+
19+
@Test
20+
public void test1() {
21+
intervals = new int[][]{
22+
{2, 3},
23+
{5, 5},
24+
{2, 2},
25+
{3, 4},
26+
{3, 4}
27+
};
28+
expected = new int[][]{
29+
{2, 4},
30+
{5, 5}
31+
};
32+
assertEquals(expected, solution1.merge(intervals));
33+
}
1634

17-
@BeforeClass
18-
public static void setup() {
19-
solution1 = new _56.Solution1();
20-
}
21-
22-
@Test
23-
public void test1() {
24-
intervals = new ArrayList();
25-
intervals.add(new Interval(2, 3));
26-
intervals.add(new Interval(5, 5));
27-
intervals.add(new Interval(2, 2));
28-
intervals.add(new Interval(3, 4));
29-
intervals.add(new Interval(3, 4));
30-
31-
expected = new ArrayList<>();
32-
expected.add(new Interval(2, 4));
33-
expected.add(new Interval(5, 5));
34-
assertEquals(expected, solution1.merge(intervals));
35-
}
36-
37-
@Test
38-
public void test2() {
39-
intervals = new ArrayList();
40-
intervals.add(new Interval(1, 3));
41-
intervals.add(new Interval(2, 6));
42-
intervals.add(new Interval(8, 10));
43-
intervals.add(new Interval(15, 18));
44-
45-
expected = new ArrayList<>();
46-
expected.add(new Interval(1, 6));
47-
expected.add(new Interval(8, 10));
48-
expected.add(new Interval(15, 18));
49-
assertEquals(expected, solution1.merge(intervals));
50-
}
5135
}

0 commit comments

Comments
 (0)