仅用于自己学习!
自己考虑太多了,又把字符剥出来,又整字符递归的
第一个正解
很轻松的递归,负号就减,正号就加,
我的垃圾思路是5个数字就有5个符号,用一个list存符号,递归函数里上循环遍历两种符号,进入递归,再remove size()-1,这样就能把所以的情况全遍历出来,将List<List<>>返回,再遍历,看哪几种能==target,想复杂了
public class kk {
int count=0;
public int findTargetSumWays(int[] nums, int target) {
backtrack(nums, target, 0, 0);
return count;
}
void backtrack(int nums[],int target,int index,int sum)
{
if(index==nums.length)
{
if(sum==target)count++;
}
else {
backtrack(nums, target, index+1, sum+nums[index]);
backtrack(nums, target, index+1, sum-nums[index]);
}
}
}