动态规划:01背包理论基础
虽然我了解01背包的递推公式,但是没有这样详细的考虑过,要学会使用递归五步曲来思考递归问题,我总是用直觉来写题,在写题时不考虑具体的实现细节,大多靠感觉来进行初始化以及决定遍历顺序,以后要避免这个问题,在思考递归问题时要一步一步思考(抽丝剥茧),将问题都想清楚。
动态规划:01背包理论基础(滚动数组)
一维数组的解法让我对遍历顺序以及初始化有了更深的了解,为什么要从后向前遍历以及俩个循环是否可以互换,无法由左向右便利的原因是这样会导致一个物品被放入多次,也就是说我们在遍历右边的值的时候我们需要上一层的左边值,如果我们从左向右遍历我们就会失去上一层的左边值,所以需要从右到左遍历,而循环无法互换是因为会导致背包中始终只有一个物品(没太想明白)(或许是因为只能倒序),所以我们,只能说算法博大精深。
416. 分割等和子集
背包问题的简单应用。