解题思路
相关代码
class Solution {public int findTargetSumWays(int[] nums, int target) {int f[][] = new int[30][2010];int offset = 1000;//因为target>=-1000&&target<=1000,所以需要一个偏移量//f[0][0] -> f[0][0+offset]=1;f[0][0+offset] = 1;//由于存在偏移量,可能数据间会产生相互影响,所以最好//j>=-1000&&j<=1000for(int i=1;i<=nums.length;i++)for(int j=-1000;j<=1000;j++){if(j-nums[i-1]>=-1000)f[i][j+offset] += f[i-1][j-nums[i-1]+offset];if(j+nums[i-1]<=1000)f[i][j+offset] += f[i-1][j+nums[i-1]+offset];} return f[nums.length][target+offset];}
}