算法练习 |
您所在的位置:网站首页 › 一个背包可以背几年 › 算法练习 |
难度参考
难度:困难 分类:动态规划 难度与分类由我所参与的培训课程提供,但需 要注意的是,难度与分类仅供参考。且所在课程未提供测试平台,故实现代码主要为自行测试的那种,以下内容均为个人笔记,旨在督促自己认真学习。 题目动态规划经典问题01背包? 具体内容: 背包最大重量为4 物品如下: 重量价值物品0115物品1320物品2430问背包能背的最大重量是多少? 思路0-1 背包问题的动态规划解法基于以下思路: 子问题定义: 将原问题分解为子问题。在这里,我们考虑"对于给定的背包容量和一组物品,最大价值是多少?"定义状态 dp[i][w] —— 表示考虑前 i 个物品时,对于不超过 w 重量的背包,所能得到的最大价值。初始条件: 对于 dp[0][...],即一个物品也不考虑的情况,背包的价值总是 0。对于 dp[...][0],即背包容量为 0 的情况,背包的价值也总是 0。递推关系(状态转移方程): 对于每一个物品 i 和每一个可能的重量 w,我们需要做出一个决策:是否将物品 i 放入背包。如果不放物品 i,则 dp[i][w] = dp[i-1][w] —— 也就是说,当前的最大价值与前 i-1 个物品时的最大价值相同。如果放物品 i,我们必须确保当前背包的剩余容量至少是物品 i 的重量 (weights[i-1] |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |