Target Sum【超经典考题】

链接: 

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



最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容