We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent cb0ac65 commit 77a9aa1Copy full SHA for 77a9aa1
Dynamic Programming/494_Target_Sum.java
@@ -4,20 +4,26 @@ public int findTargetSumWays(int[] nums, int S) {
4
return 0;
5
}
6
7
- return dfs(nums, S, 0, 0);
+ return dfs(nums, S, 0, 0, new HashMap<>());
8
9
10
- private int dfs(int[] nums, int S, int sum, int idx) {
+ private int dfs(int[] nums, int S, int sum, int idx, Map<String, Integer> m) {
11
+ String encodedVal = idx + "->" + sum;
12
+ if (m.containsKey(encodedVal)) {
13
+ return m.get(encodedVal);
14
+ }
15
+
16
if (idx == nums.length) {
17
if (sum == S) {
18
return 1;
19
20
21
22
- int add = dfs(nums, S, sum + nums[idx], idx + 1);
- int minus = dfs(nums, S, sum - nums[idx], idx + 1);
23
+ int add = dfs(nums, S, sum + nums[idx], idx + 1, m);
24
+ int minus = dfs(nums, S, sum - nums[idx], idx + 1, m);
25
26
+ m.put(encodedVal, add + minus);
27
return add + minus;
28
29
0 commit comments