题目传送门
链接:https://leetcode-cn.com/problems/target-sum/
题干
题解
使用dfs枚举,每个数字都有加和减两种状态
Code
class Solution {
public:
int res = 0;
int findTargetSumWays(vector<int>& nums, int target) {
int n = nums.size();
dfs(0, 0, nums, target);
return res;
}
void dfs(int u, int state, vector<int>& nums, int target) {
int n = nums.size();
if (u == n) {
if (state == target) {
res++;
}
return;
}
dfs(u + 1, state + nums[u], nums, target);
dfs(u + 1, state - nums[u], nums, target);
}
};