public class Solution {
public int FindTargetSumWays(int[] nums, int target) {
int sum=0;
for(int i=0;i<nums.Length;i++){
sum+=nums[i];
}
if(target>sum)
return 0;
if((sum+target)%2==1)
return 0;
int target1=(target+sum)/2;
//要加上为0的判断 不然数组会超限
if(target1<0)
target1=-target1;
var dp=new int[target1+1];
dp[0]=1;
for(int i=0;i<nums.Length;i++){
for(int j=target1;j>=nums[i];j--){
dp[j]+=dp[j-nums[i]];
}
}
return dp[target1];
}
}