1、dp[j]:容量为j的背包,所能装载的最大价值为dp[j]。
2、dp[j-weight[i]]表示容量为j-weight[i]的背包所装载的最大价值。
3、同样采用双for循环,其实就是遍历出了一个表格(但是是以一维数组的方法,被覆盖了3次)。
4、从后向前遍历的方式是因为从前向后时dp[j-weight[i]]会被重复利用,而从后向前的话,因为所有的默认值都是0,所以max不会出现问题。二维数组不会出现问题的原因是,其每个i与j对应的数据不会被覆盖(是一个表格)。
双for循环的遍历顺序(先向前,再向下(层序覆盖)):