ссылка на проблему: https://leetcode.com/problems/target-sum/ Я попытался сделать это с помощью подходов сверху вниз и снизу вверх. Сверху вниз работал, но снизу вверх не получилось. Скажите, пожалуйста, почему. Подход сверху вниз ->
class Solution {
public:
int findTargetSumWays(vector<int>& nums, int S)
{
int sum=accumulate(nums.begin(),nums.end(),0);
if((sum+S)%2!=0)
return false;
int target=(sum+S)/2;
if(target>sum)
return false;
int n=nums.size();
vector<int> sumrecord(sum+1,0);
sumrecord[0]=1;
for(int i=0;i<n;i++)
for(int j=target;j>=nums[i];j--)
{
sumrecord[j]+=sumrecord[j-nums[i]];
}
return sumrecord[target];
}
};