(amount, coins, n)
| 16 | }; |
| 17 | |
| 18 | var dfs = (amount, coins, n) => { |
| 19 | const isLess = amount < coins[n - 1]; |
| 20 | if (isLess) |
| 21 | return change(amount, coins, n - 1); /* Time O(2^N) | Space O(N) */ |
| 22 | |
| 23 | const left = change( |
| 24 | amount - coins[n - 1], |
| 25 | coins, |
| 26 | n, |
| 27 | ); /* Time O(2^N) | Space O(N) */ |
| 28 | const right = change(amount, coins, n - 1); /* Time O(2^N) | Space O(N) */ |
| 29 | |
| 30 | return left + right; |
| 31 | }; |
| 32 | |
| 33 | /** |
| 34 | * DP - Top Down |