解题思路
很简单的递归,对于每个地方的数无非就是两种情况,+或-,找到每个数的情况
代码
class Solution {
int ans = 0;
public int findTargetSumWays(int[] nums, int target) {
backtrack(0,nums,target,0);
return ans;
}
public void backtrack(int index,int[] nums, int target,int cur){
if(index==nums.length && cur==target){//所有数全部用完且当前值==目标target
ans++;
}
if(index==nums.length){//所有数已经全部用完
return;
}
backtrack(index+1,nums,target,cur+nums[index]);
backtrack(index+1,nums,target,cur-nums[index]);
}
}