动态规划和回溯算法区别?
回溯算法虽好,但是复杂度高,即便消除一些冗余计算,也只是「剪枝」,没有本质的改进。而动态规划就比较玄学了,经过各种改造, 从一个加减法问题变成子集问题,又变成背包问题,经过各种套路写出解法,又搞出状态压缩,还得反向遍历。
转化为背包问题注重三个细节点:
dp[i][j] i 索引从1开始; j 可以从0开始遍历 —— 因为此处背包包含 0重量物品。 注意分情况状态转移: j>=nums[i-1] 回溯-> 动规问题转化 == 整体等式的推导 以及 问题转换时的0-1背包问题 。
Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有 粤ICP备16019765号
广州京杭网络科技有限公司 版权所有