【动态规划】494. 目标和
class Solution {
public:
int findTargetSumWays(vector<int>& nums, int target) {
int sum = target;
for_each(begin(nums), end(nums), [&sum](int x){
sum += x;
});
if(sum % 2)
return 0;
sum /= 2;
sum = sum > 0 ? sum : sum * -1;
int dp[sum + 1];
int len = nums.size();
memset(dp, 0 ,sizeof(dp));
dp[0] = 1;
for(int i=0;i<len;++i){
int w = nums[i];
for(int j=sum;j>=w;--j){
dp[j] = dp[j] + dp[j-w];
}
}
return dp[sum];
}
};