From 7d8fd083608b286f4aa1422cdb857e9afda9362e Mon Sep 17 00:00:00 2001 From: aadil42 <77232799+aadil42@users.noreply.github.com> Date: Tue, 15 Aug 2023 18:08:57 +0530 Subject: [PATCH] Create code.js Added solution for target sum. Submission Link: https://leetcode.com/problems/target-sum/submissions/1022046879/ --- .../001. Target Sum/code.js | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 02. Algorithms/09. Dynamic Programming/001. Target Sum/code.js diff --git a/02. Algorithms/09. Dynamic Programming/001. Target Sum/code.js b/02. Algorithms/09. Dynamic Programming/001. Target Sum/code.js new file mode 100644 index 00000000..e98a1031 --- /dev/null +++ b/02. Algorithms/09. Dynamic Programming/001. Target Sum/code.js @@ -0,0 +1,29 @@ +/** Recursion, memoization + * https://leetcode.com/problems/target-sum/ + * + * Time O(m*n) where n = nums.length and m = target; + * @param {number[]} nums + * @param {number} target + * @return {number} + */ +var findTargetSumWays = function(nums, target) { + + const cache = new Map(); + + function dfs(i, total) { + const key = i + "-" + total; + if(cache.has(key)) return cache.get(key); + + if(i === nums.length) { + if(total === target) return 1; + return 0; + } + + const result = (dfs(i + 1, total + nums[i]) + dfs(i + 1, total - nums[i])); + cache.set(key, result); + return cache.get(key); + // return cache[i+"-"+total]; + } + + return dfs(0,0); +};