1.思想方法

2.代码
class Solution { public int findTargetSumWays(int[] nums, int target) {int sum = 0;for(int num : nums)sum += num;if(sum < Math.abs(target) || (target+sum)%2 != 0)return 0;int x = (target+sum) / 2,n = nums.length;//基于滚动数组的方法int[] dp = new int[x+1];dp[0] = 1;for(int i = 0;i < n;i++){for(int j = x;j >= nums[i];j--)dp[j] = dp[j] + dp[j - nums[i]];}return dp[x];//基于二维数组的方法// int[][] dp = new int[n+1][x+1];// dp[0][0] = 1;// for(int i = 1;i <= n;i++){// for(int j = 0;j <= x;j++){// if(j < nums[i-1])// dp[i][j] = dp[i-1][j];// else// dp[i][j] = dp[i-1][j] + dp[i-1][j - nums[i-1]];// }// }// return dp[n][x];}
}