494. 目标和

目标和

解法一: 深度优先遍历

go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
func findTargetSumWays(nums []int, target int) int {
// f(i) = nums[i] + f(i - 1)
// f(i) = -nums[i] + f(i - 1)
ans := 0
var dfs func(int, int)
dfs = func(i, cur int) {
if i < 0 {
if cur == 0 {
ans++
}
return
}
dfs(i-1, cur+nums[i])
dfs(i-1, cur-nums[i])
}
dfs(len(nums)-1, target)
return ans
}
作者

wuhunyu

发布于

2024-06-30

更新于

2025-01-15

许可协议