目标和(超级妙的背包问题)
创始人
2024-11-11 07:07:29
0

494. 目标和

给你一个非负整数数组 nums 和一个整数 target

向数组中的每个整数前添加 '+''-' ,然后串联起所有整数,可以构造一个 表达式

  • 例如,nums = [2, 1] ,可以在 2 之前添加 '+' ,在 1 之前添加 '-' ,然后串联起来得到表达式 "+2-1"

返回可以通过上述方法构造的、运算结果等于 target 的不同 表达式 的数目。

示例 1:

**输入:**nums = [1,1,1,1,1], target = 3 **输出:**5 **解释:**一共有 5 种方法让最终目标和为 3 。 -1 + 1 + 1 + 1 + 1 = 3 +1 - 1 + 1 + 1 + 1 = 3 +1 + 1 - 1 + 1 + 1 = 3 +1 + 1 + 1 - 1 + 1 = 3 +1 + 1 + 1 + 1 - 1 = 3 

示例 2:

**输入:**nums = [1], target = 1 **输出:**1 

提示:

  • 1 <= nums.length <= 20
  • 0 <= nums[i] <= 1000
  • 0 <= sum(nums[i]) <= 1000
  • -1000 <= target <= 1000

想了好一会才找到思路,转换一下题目就是找到两个子数组,和分别为 sum 和 sum + target,这样就可以抵消了

class Solution { public:     int findTargetSumWays(vector& nums, int target) {         int sum = 0;         for (auto u : nums) {             sum += u;         }         int a = sum - target;         if (a & 1) return 0;         if (a < 0) return 0;         int bag = a / 2;         vector dp(bag + 1, 0);         dp[0] = 1;         for (auto u : nums) {             for (int j = bag; j >= u; j--) {                 dp[j] += dp[j - u];             }         }         return dp[bag];     } }; 

相关内容

热门资讯

更值得关注的是!荔枝竞技修改器... 更值得关注的是!荔枝竞技修改器,青鸟辅助器(都是真的是有软件)-哔哩哔哩小薇(辅助器软件下载)致您一...
长期以来!微乐游戏兑换码大全,... 长期以来!微乐游戏兑换码大全,红龙poker辅助工具(透视)好像有辅助教程(哔哩哔哩)1、游戏颠覆性...
此事备受玩家关注"w... 此事备受玩家关注"we poker辅助器下载"购买wepoker模拟器(都是是真的辅助神器)-哔哩哔...
透视透视!hhpoker破解工... 透视透视!hhpoker破解工具,德州hhpoker脚本,其实真的是有辅助教程(哔哩哔哩)暗藏猫腻,...
据公告内容!余干中至辅助器,长... 据公告内容!余干中至辅助器,长乐互娱亲友圈辅助(都是有挂工具)-哔哩哔哩1、打开软件启动之后找到中间...
日前!广东雀神智能插件安装辅助... 日前!广东雀神智能插件安装辅助器,wepoker有没有插件(透视)都是是真的有辅助app(哔哩哔哩)...
透视工具"wepok... 透视工具"wepoker辅助器免费"wepoker有透视底牌吗(其实是真的辅助辅助器)-哔哩哔哩1、...
透视透视!德普之星怎么设置埋牌... 透视透视!德普之星怎么设置埋牌,德普辅助器怎么用,好像是真的有辅助方法(哔哩哔哩)1、辅助器安装包、...
在玩家背景下!友友联盟免费辅助... 在玩家背景下!友友联盟免费辅助器,四川辅助工具(切实是真的软件)-哔哩哔哩1、游戏颠覆性的策略玩法,...
据相关数据显示!逍遥湖北卡五辅... 据相关数据显示!逍遥湖北卡五辅助,wpk作必弊是真的吗(透视)总是真的有辅助技巧(哔哩哔哩)1、操作...