-
Notifications
You must be signed in to change notification settings - Fork 83
/
Copy pathSolution.java
34 lines (29 loc) · 846 Bytes
/
Solution.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
package g0301_0400.s0377_combination_sum_iv;
// #Medium #Array #Dynamic_Programming #Dynamic_Programming_I_Day_21
// #2022_07_12_Time_1_ms_(92.54%)_Space_41.3_MB_(60.07%)
import java.util.Arrays;
public class Solution {
private int[] storage;
public int combinationSum4(int[] nums, int target) {
storage = new int[target + 1];
Arrays.fill(storage, -1);
return result(nums, target);
}
private int result(int[] nums, int target) {
if (target < 0) {
return 0;
}
if (target == 0) {
return 1;
}
if (storage[target] != -1) {
return storage[target];
}
int count = 0;
for (int i : nums) {
count += result(nums, target - i);
}
storage[target] = count;
return count;
}
}