1
0
Fork 0
mirror of https://gitlab.com/mfocko/LeetCode.git synced 2024-11-09 15:59:06 +01:00
LeetCode/java/combination-sum-iv.java
Matej Focko 2351dfd0ee
chore: unwrap one layer
Signed-off-by: Matej Focko <mfocko@redhat.com>
2023-12-12 14:36:00 +01:00

35 lines
872 B
Java

import java.util.TreeMap;
class Solution {
private TreeMap<Integer, Integer> cache;
private int combinationSumRec(int[] nums, int target) {
if (target < 0) {
// Base: Target is below zero
return 0;
}
if (target == 0) {
// Base: We have found a possible combination
return 1;
}
if (cache.containsKey(target)) {
// Base: Target is already precomputed
return cache.get(target);
}
int combinations = 0;
for (int num : nums) {
combinations += combinationSumRec(nums, target - num);
}
cache.put(target, combinations);
return combinations;
}
public int combinationSum4(int[] nums, int target) {
cache = new TreeMap<>();
return combinationSumRec(nums, target);
}
}