dp
0-1背包
一点体会
(1) 在递归中,从小到大循环,先算大的后算小的
从大到小循环,先算小的后算出大的(比如f[n]=f[n-1]+f[n-2],先得出f[n-1]和f[n-2]的结果)
在这里面,被注释掉的第26行,因为j是从小到大循环,所以计算第二维的j时,(j-v[i]一行已经被计算过,所以此时的 f[j-v[i]=f[i][j-v[i]]
但是如果从大到小循环,计算第二维的j时,小于j的(j-v[i])还没有被计算,此时f[j-v[i]]=f[i-1][j-v[i]]
滚动数组
感觉有一丝递归的意味 生活处处充满递归