8000 [N-0] refactor 659 · ljin029/Leetcode-1@2c69c32 · GitHub
[go: up one dir, main page]

Skip to content

Commit 2c69c32

Browse files
[N-0] refactor 659
1 parent db4af71 commit 2c69c32

File tree

2 files changed

+34
-34
lines changed

2 files changed

+34
-34
lines changed

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

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package com.fishercoder.solutions;
22

3-
43
import java.util.HashMap;
54
import java.util.Map;
65

@@ -37,31 +36,32 @@
3736

3837
public class _659 {
3938

40-
/**
41-
* reference: https://discuss.leetcode.com/topic/99187/java-o-n-time-o-n-space
42-
*/
43-
public boolean isPossible(int[] nums) {
44-
Map<Integer, Integer> freqMap = new HashMap<>();
45-
for (int i : nums) {
46-
freqMap.put(i, freqMap.getOrDefault(i, 0) + 1);
47-
}
48-
Map<Integer, Integer> appendFreqMap = new HashMap<>();
49-
for (int i : nums) {
50-
if (freqMap.get(i) == 0) {
51-
continue;
52-
} else if (appendFreqMap.getOrDefault(i, 0) > 0) {
53-
appendFreqMap.put(i, appendFreqMap.get(i) - 1);
54-
appendFreqMap.put(i + 1, appendFreqMap.getOrDefault(i + 1, 0) + 1);
55-
} else if (freqMap.getOrDefault(i + 1, 0) > 0 && freqMap.getOrDefault(i + 2, 0) > 0) {
56-
freqMap.put(i + 1, freqMap.get(i + 1) - 1);
57-
freqMap.put(i + 2, freqMap.get(i + 2) - 1);
58-
appendFreqMap.put(i + 3, appendFreqMap.getOrDefault(i + 3, 0) + 1);
59-
} else {
60-
return false;
39+
public static class Solution1 {
40+
/**
41+
* reference: https://discuss.leetcode.com/topic/99187/java-o-n-time-o-n-space
42+
*/
43+
public boolean isPossible(int[] nums) {
44+
Map<Integer, Integer> freqMap = new HashMap<>();
45+
for (int i : nums) {
46+
freqMap.put(i, freqMap.getOrDefault(i, 0) + 1);
6147
}
62-
freqMap.put(i, freqMap.get(i) - 1);
48+
Map<Integer, Integer> appendFreqMap = new HashMap<>();
49+
for (int i : nums) {
50+
if (freqMap.get(i) == 0) {
51+
continue;
52+
} else if (appendFreqMap.getOrDefault(i, 0) > 0) {
53+
appendFreqMap.put(i, appendFreqMap.get(i) - 1);
54+
appendFreqMap.put(i + 1, appendFreqMap.getOrDefault(i + 1, 0) + 1);
55+
} else if (freqMap.getOrDefault(i + 1, 0) > 0 && freqMap.getOrDefault(i + 2, 0) > 0) {
56+
freqMap.put(i + 1, freqMap.get(i + 1) - 1);
57+
freqMap.put(i + 2, freqMap.get(i + 2) - 1);
58+
appendFreqMap.put(i + 3, appendFreqMap.getOrDefault(i + 3, 0) + 1);
59+
} else {
60+
return false;
61+
}
62+
freqMap.put(i, freqMap.get(i) - 1);
63+
}
64+
return true;
6365
}
64-
return true;
6566
}
66-
6767
}

src/test/java/com/fishercoder/_659Test.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,30 +7,30 @@
77
import static org.junit.Assert.assertEquals;
88

99
public class _659Test {
10-
private static _659 test;
10+
private static _659.Solution1 solution1;
1111
private static int[] nums;
1212

1313
@BeforeClass
1414
public static void setup() {
15-
test = new _659();
15+
solution1 = new _659.Solution1();
1616
}
1717

1818
@Test
1919
public void test1() {
20-
nums = new int[]{1,2,3,3,4,5};
21-
assertEquals(true, test.isPossible(nums));
20+
nums = new int[]{1, 2, 3, 3, 4, 5};
21+
assertEquals(true, solution1.isPossible(nums));
2222
}
2323

2424
@Test
2525
public void test2() {
26-
nums = new int[]{1,2,3,3,4,4,5,5};
27-
assertEquals(true, test.isPossible(nums));
26+
nums = new int[]{1, 2, 3, 3, 4, 4, 5, 5};
27+
assertEquals(true, solution1.isPossible(nums));
2828
}
2929

3030
@Test
3131
public void test3() {
32-
nums = new int[]{1,2,3,4,4,5};
33-
assertEquals(false, test.isPossible(nums));
32+
nums = new int[]{1, 2, 3, 4, 4, 5};
33+
assertEquals(false, solution1.isPossible(nums));
3434
}
3535

3636
@Test
@@ -127,7 +127,7 @@ public void test4() {
127127
98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98,
128128
99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99,
129129
100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100};
130-
assertEquals(true, test.isPossible(nums));
130+
assertEquals(true, solution1.isPossible(nums));
131131
}
132132

133133
}

0 commit comments

Comments
 (0)
0