Facebook超级背包问题, Combination Sum IV

参考: https://mp.weixin.qq.com/s?__biz=MzA5MzE4MjgyMw==&mid=2649455651&idx=1&sn=2cfd46678f2a43aaf9f888aa58c8c080&chksm=887e122bbf099b3d49a3ea399d3c01f8967a0bbe2462fa2c28fee42daadb06b6678668de8b8b&mpshare=1&scene=1&srcid=0317hOi4csT3vilJsndabLdI&key=e10ebddae0f43000ef8f862d52c5d4a551cbf0cd7e5d2d2c45986642dd84e9db70aada9245d7c6c7d4aab4fbfc6e9710b4f3e74b21aea5aac00952f258131a659a0d38f9f4a5472b1722afa0223e044d&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











好奇怪。。。这个真的是我写的吗。。。为什么一点印象没有。

这里分析一下Run Time. 为什么说复杂度达到了O(N^M).  因为最差情况,target每次只减去1. 对于一个case就要减M次。所以= n*n*n*n...n=n^m

最优解: DP:

假设我们要求target, 先想一下target的上一步。 比如说target -10.   Target Sum =9 只要再有一个1就可以到10.

Target sum 8再有一个2就可以到10. 所以我们就是遍历所有的能够取array里一个元素到target的情况。


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容