java 实现0-1 背包问题 动态规划

it2025-04-27  6

有5个物品,它们有各自的体积和价值,给定容量的背包,计算背包里装入的物品具有最大的价值总和。

输入描述:

宝贝价值:6,3,5,4,6 宝贝重量:2,2,6,5,4 小偷背包容量:10

输出描述:

偷到宝贝的总价值:15

package main; import java.util.Scanner; public class Main { public static void main(String[] args){ Scanner in = new Scanner(System.in); int[] weight = new int [6]; int[] value = new int [6]; int c; for(int i=1;i<=5;i++){ weight[i]=in.nextInt(); } for(int i=1;i<=5;i++){ value[i]=in.nextInt(); } c = in.nextInt(); int[][] dp=new int[6][c+1]; for(int i=1;i<=5;i++){ for(int j=1;j<=c;j++){ if(j<weight[i]){ dp[i][j] = dp[i-1][j]; }else{ dp[i][j]=max(dp[i-1][j],dp[i-1][j-weight[i]]+value[i]); } } } System.out.println(dp[5][c]); } private static int max (int v1,int v2){ return v1>v2?v1:v2; } }

学习连接:https://blog.csdn.net/qq_38410730/article/details/81667885

最新回复(0)