func findTargetSumWays(nums []int, S int) (ans int) { dfs(nums, len(nums), 0, 0, S, &ans) return } func dfs(nums []int, n int, i int, sum int, S int, ans *int) { if i == n { if sum == S { (*ans)++ } return } dfs(nums, n, i+1, sum+nums[i], S, ans) dfs(nums, n, i+1, sum-nums[i], S, ans) }