链接:
https://mp.weixin.qq.com/s?__biz=MzA5MzE4MjgyMw==&mid=2649456756&idx=1&sn=cd778e01d617cb98c2090175b816f7db&chksm=887eee7cbf09676a11987612f0c17ad3df3a98065fa396d20fe78dafdbc7e0a1b7927728e983&mpshare=1&scene=1&srcid=0317NF9Pt1G4sPfgahi8ICcA&key=a6c5bc40efb6869fb4943271536e9c07650db36934d692ba00ea6cae21da44f6106de3c74aa4091345e5de4fba5da562ba0a6259c26c2065893a119e24f4211f3102c547f57cefb1ebf17b2fd93221b5&ascene=0&uin=MTUyMzg3NjAwMA%3D%3D&devicetype=iMac+MacBookAir7%2C1+OSX+OSX+10.12.3+build(16D32)&version=12020010&nettype=WIFI&fontScale=100&pass_ticket=0AiIToHJN8yqpuqRAsA5PaaQMJr8KtvlnZ2EqkX0zx%2BEZweRvHKyF%2ByjmycpUbVn
现有一个非负整数列a1, a2, ..., an和一个期望值S。你可以为每一个整数赋一个新符号,符号从+和-两种符号中选择。计算出有多少种组合可以令赋予符号后的这些整数的和等于S。
很容易能画出这么一个图出来,用DFS是一个很自然的想法搜索问题
【我一开始很羞耻的卡在了+, -的选择上, 由于图是这么画的给我一种感觉又要考虑数又要考虑符号。。。其实就是递归的时候 + num, -num】。
DP是一个Better Solution
Double Sum这个可能看起来没有那么obvious是什么意思。意思就是因为Target Sum是有可能negative的,我们
把sum变大一倍。 前半部分用来表示negative,后面表示positive