494. 目标和
题目链接:494. 目标和
代码如下:
cpp
class Solution {
public:
int findTargetSumWays(vector<int>& nums, int target)
{
int sum=0;
for(int i=0;i<nums.size();i++) sum+=nums[i];
if((target+sum)%2==1) return 0;
if(abs(target)>sum) return 0;
int bagSize=(target+sum)/2;
vector<int> dp(bagSize+1,0);//dp[j] 表示:填满j(包括j)这么大容积的包,有dp[j]种方法
dp[0]=1;
for(int i=0;i<nums.size();i++)
{
for(int j=bagSize;j>=nums[i];j--)
dp[j]+=dp[j-nums[i]];
}
return dp[bagSize];
}
};