1.卡尔算法讲解
2.B站背包讲解
1.案例
2.动态过程
3.归纳
4.代码
public class CodeBag { public static void main(String[] args) { int[] weight = {1, 3, 4}; int[] value = {15, 20, 30}; int bagsize = 4; testweightbagproblem(weight, value, bagsize); } public static void testweightbagproblem(int[] weight, int[] value, int bagsize) { int wlen = weight.length, value0 = 0; //定义dp数组:dp[i][j]表示背包容量为j时,前i个物品能获得的最大价值 int[][] dp = new int[wlen + 1][bagsize + 1]; //初始化:背包容量为0时,能获得的价值都为0 for (int i = 0; i <= wlen; i++) { dp[i][0] = value0; } //遍历顺序:先遍历物品,再遍历背包容量 for (int i = 1; i <= wlen; i++) { for (int j = 1; j <= bagsize; j++) { if (j < weight[i - 1]) {//weight只有0以后的,计算判断时以前一个weight对应 dp[i][j] = dp[i - 1][j]; } else { dp[i][j] = Math.max(dp[i - 1][j], dp[i - 1][j - weight[i - 1]] + value[i - 1]); } } } //打印dp数组 for (int i = 0; i <= wlen; i++) { for (int j = 0; j <= bagsize; j++) { System.out.print(dp[i][j] + " "); } System.out.print("\n"); } } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
2021-06-11 生成微信支付二维码接口
2021-06-11 订单号工具类
2021-06-11 返回值工具类