changgyhub / leetcode_101

LeetCode 101:和你一起你轻松刷题(C++)
8.2k stars 1.12k forks source link

7.6 节 p54 “注意” #88

Closed tracyqwerty closed 7 months ago

tracyqwerty commented 7 months ago
如果您实在不想仔细思考,这里有个简单的口诀:0-1 背包对物品的迭代放在外层,里层的体积或价值逆向遍历; 完全背包对物品的迭代放在里层,外层的体积或价值正向遍历。

此处有误。0-1 背包和完全背包对物品的迭代都放在外层。

changgyhub commented 7 months ago

感谢关注!

前文有提到

压缩空间时到底需要正向还是逆向遍历呢?物品和体积哪个放在外层,哪个放在内层呢?这取决于状态转移方程的依赖关系。在思考空间压缩前,不妨将状态转移矩阵画出来,方便思考如何进行空间压缩。

另外对于一般的完全背包问题,放在里层外层都是可以的,只要状态转移支持即可,这里仅为一个懒人口诀 :) 下面抛硬币那道题便是内层迭代硬币。

tracyqwerty commented 7 months ago

感谢回复!