Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit59b6945

Browse files
refactor 377
1 parentaa9f09f commit59b6945

File tree

2 files changed

+25
-22
lines changed

2 files changed

+25
-22
lines changed

‎src/main/java/com/fishercoder/solutions/_377.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -78,19 +78,19 @@ public static class Solution3 {
7878
*/
7979
publicintcombinationSum4(int[]nums,inttarget) {
8080
Arrays.sort(nums);
81-
int[]result =newint[target +1];
82-
for (inti =1;i <result.length;i++) {
81+
int[]dp =newint[target +1];
82+
for (inti =1;i <dp.length;i++) {
8383
for (intnum :nums) {
8484
if (num >i) {
8585
break;
8686
}elseif (num ==i) {
87-
result[i]++;
87+
dp[i]++;
8888
}else {
89-
result[i] +=result[i -num];
89+
dp[i] +=dp[i -num];
9090
}
9191
}
9292
}
93-
returnresult[target];
93+
returndp[target];
9494
}
9595
}
9696

@@ -101,7 +101,7 @@ public static class Solution4 {
101101
* <p>
102102
* Reference: https://discuss.leetcode.com/topic/52255/java-recursion-solution-using-hashmap-as-memory
103103
*/
104-
publicstaticMap<Integer,Integer>map =newHashMap<>();//need to remove public static before submitting on Leetcode as it doesn't reset static variables
104+
Map<Integer,Integer>map =newHashMap<>();
105105

106106
publicintcombinationSum4(int[]nums,inttarget) {
107107
if (nums ==null ||nums.length ==0 ||target <0) {

‎src/test/java/com/fishercoder/_377Test.java

Lines changed: 19 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -14,53 +14,56 @@ public class _377Test {
1414
privatestatic_377.Solution4solution4;
1515
privatestaticint[]nums;
1616
privatestaticinttarget;
17+
privatestaticintexpected;
1718

1819
@BeforeClass
1920
publicstaticvoidsetup() {
2021
solution1 =new_377.Solution1();
2122
solution2 =new_377.Solution2();
2223
solution3 =new_377.Solution3();
23-
solution4 =new_377.Solution4();
2424
}
2525

2626
@Before
2727
publicvoidsetUp()throwsException {
2828
//always have to reset these global variables before using it again
2929
solution2.count =0;
30-
solution4.map.clear();
30+
solution4 =new_377.Solution4();
3131
}
3232

3333
@Test
3434
publicvoidtest1() {
35-
nums =newint[]{1,2,3};
35+
nums =newint[]{1,2,3};
3636
target =4;
37-
assertEquals(7,solution1.combinationSum4(nums,target));
38-
assertEquals(7,solution2.combinationSum4(nums,target));
39-
assertEquals(7,solution3.combinationSum4(nums,target));
40-
assertEquals(7,solution4.combinationSum4(nums,target));
37+
expected =7;
38+
assertEquals(expected,solution1.combinationSum4(nums,target));
39+
assertEquals(expected,solution2.combinationSum4(nums,target));
40+
assertEquals(expected,solution3.combinationSum4(nums,target));
41+
assertEquals(expected,solution4.combinationSum4(nums,target));
4142
}
4243

4344
@Test
4445
publicvoidtest2() {
45-
nums =newint[]{4,2,1};
46+
nums =newint[]{4,2,1};
4647
target =32;
48+
expected =39882198;
4749
// assertEquals(39882198, solution1.combinationSum4(nums, target));//this results in MLE, so comment out
4850

49-
assertEquals(39882198,solution2.combinationSum4(nums,target));
51+
assertEquals(expected,solution2.combinationSum4(nums,target));
5052

51-
assertEquals(39882198,solution3.combinationSum4(nums,target));
53+
assertEquals(expected,solution3.combinationSum4(nums,target));
5254

53-
assertEquals(39882198,solution4.combinationSum4(nums,target));
55+
assertEquals(expected,solution4.combinationSum4(nums,target));
5456
}
5557

5658
@Test
5759
publicvoidtest3() {
5860
nums =newint[]{9};
5961
target =3;
60-
assertEquals(0,solution1.combinationSum4(nums,target));
61-
assertEquals(0,solution2.combinationSum4(nums,target));
62-
assertEquals(0,solution3.combinationSum4(nums,target));
63-
assertEquals(0,solution4.combinationSum4(nums,target));
62+
expected =0;
63+
assertEquals(expected,solution1.combinationSum4(nums,target));
64+
assertEquals(expected,solution2.combinationSum4(nums,target));
65+
assertEquals(expected,solution3.combinationSum4(nums,target));
66+
assertEquals(expected,solution4.combinationSum4(nums,target));
6467
}
6568

66-
}
69+
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp