Skip to content

Commit f986b8a

Browse files
refactor 75
1 parent 3876a86 commit f986b8a

File tree

2 files changed

+107
-49
lines changed

2 files changed

+107
-49
lines changed

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

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@ public class _75 {
44

55
public static class Solution1 {
66
public void sortColors(int[] nums) {
7-
int zero = 0;
8-
int two = nums.length - 1;
9-
for (int i = 0; i <= two; ) {
10-
if (nums[i] == 0 && i > zero) {
11-
swap(nums, i, zero++);
12-
} else if (nums[i] == 2 && i < two) {
13-
swap(nums, i, two--);
7+
int zeroIndex = 0;
8+
int twoIndex = nums.length - 1;
9+
for (int i = 0; i <= twoIndex; ) {
10+
if (nums[i] == 0 && i > zeroIndex) {
11+
swap(nums, i, zeroIndex++);
12+
} else if (nums[i] == 2 && i < twoIndex) {
13+
swap(nums, i, twoIndex--);
1414
} else {
1515
i++;
1616
}

src/test/java/com/fishercoder/_75Test.java

Lines changed: 100 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -7,46 +7,104 @@
77
import static org.junit.Assert.assertArrayEquals;
88

99
public class _75Test {
10-
private static _75.Solution1 solution1;
11-
private static int[] nums;
12-
13-
@BeforeClass
14-
public static void setup() {
15-
solution1 = new _75.Solution1();
16-
}
17-
18-
@Test
19-
public void test1() {
20-
nums = new int[] {2, 2, 1};
21-
solution1.sortColors(nums);
22-
assertArrayEquals(new int[] {1, 2, 2}, nums);
23-
}
24-
25-
@Test
26-
public void test2() {
27-
nums = new int[] {0, 1, 2, 0, 2, 1};
28-
solution1.sortColors(nums);
29-
assertArrayEquals(new int[] {0, 0, 1, 1, 2, 2}, nums);
30-
}
31-
32-
@Test
33-
public void test3() {
34-
nums = new int[] {0};
35-
solution1.sortColors(nums);
36-
assertArrayEquals(new int[] {0}, nums);
37-
}
38-
39-
@Test
40-
public void test4() {
41-
nums = new int[] {1, 0};
42-
solution1.sortColors(nums);
43-
assertArrayEquals(new int[] {0, 1}, nums);
44-
}
45-
46-
@Test
47-
public void test5() {
48-
nums = new int[] {2};
49-
solution1.sortColors(nums);
50-
assertArrayEquals(new int[] {2}, nums);
51-
}
10+
private static _75.Solution1 solution1;
11+
private static int[] nums;
12+
13+
@BeforeClass
14+
public static void setup() {
15+
solution1 = new _75.Solution1();
16+
}
17+
18+
@Test
19+
public void test1() {
20+
nums = new int[]{2, 2, 1};
21+
solution1.sortColors(nums);
22+
assertArrayEquals(new int[]{1, 2, 2}, nums);
23+
}
24+
25+
@Test
26+
public void test2() {
27+
nums = new int[]{0, 1, 2, 0, 2, 1};
28+
solution1.sortColors(nums);
29+
assertArrayEquals(new int[]{0, 0, 1, 1, 2, 2}, nums);
30+
}
31+
32+
@Test
33+
public void test3() {
34+
nums = new int[]{1, 0, 2};
35+
solution1.sortColors(nums);
36+
assertArrayEquals(new int[]{0, 1, 2}, nums);
37+
}
38+
39+
@Test
40+
public void test4() {
41+
nums = new int[]{1, 0};
42+
solution1.sortColors(nums);
43+
assertArrayEquals(new int[]{0, 1}, nums);
44+
}
45+
46+
@Test
47+
public void test5() {
48+
nums = new int[]{2};
49+
solution1.sortColors(nums);
50+
assertArrayEquals(new int[]{2}, nums);
51+
}
52+
53+
@Test
54+
public void test6() {
55+
nums = new int[]{2, 0, 1};
56+
solution1.sortColors(nums);
57+
assertArrayEquals(new int[]{0, 1, 2}, nums);
58+
}
59+
60+
@Test
61+
public void test7() {
62+
nums = new int[]{0};
63+
solution1.sortColors(nums);
64+
assertArrayEquals(new int[]{0}, nums);
65+
}
66+
67+
@Test
68+
public void test8() {
69+
nums = new int[]{2, 2};
70+
solution1.sortColors(nums);
71+
assertArrayEquals(new int[]{2, 2}, nums);
72+
}
73+
74+
@Test
75+
public void test9() {
76+
nums = new int[]{2};
77+
solution1.sortColors(nums);
78+
assertArrayEquals(new int[]{2}, nums);
79+
}
80+
81+
@Test
82+
public void test10() {
83+
nums = new int[]{1};
84+
solution1.sortColors(nums);
85+
assertArrayEquals(new int[]{1}, nums);
86+
}
87+
88+
@Test
89+
public void test11() {
90+
nums = new int[]{1, 2, 0};
91+
solution1.sortColors(nums);
92+
assertArrayEquals(new int[]{0, 1, 2}, nums);
93+
}
94+
95+
@Test
96+
public void test12() {
97+
nums = new int[]{1, 2, 1};
98+
solution1.sortColors(nums);
99+
assertArrayEquals(new int[]{1, 1, 2}, nums);
100+
}
101+
102+
@Test
103+
public void test13() {
104+
nums = new int[]{2, 0, 2, 1, 1, 0};
105+
solution1.sortColors(nums);
106+
assertArrayEquals(new int[]{0, 0, 1, 1, 2, 2}, nums);
107+
}
108+
109+
52110
}

0 commit comments

Comments
 (0)