题目
物品重量v[]数组内存储,物品价值w[]数组,背包容量bag
代码
package October13;
import java.util.Arrays;
public class 背包问题1 {
public static void main(String[] args) {
int v[]=new int []{3,14,5,12};//重量
int w[]=new int []{3,4,6,5};//价值
int dp[]=new int [12];
for(int i=0;i<=9;i++)
{
dp[i]=0;
}
int bag=10;
for(int i=0;i<4;i++)
{
for(int j=bag;j>=v[i];j--)
{
dp[j]=max(dp[j],dp[j-v[i]]+w[i]);
}
}
System.out.println(dp[bag]);
}
public static int max(int a,int b)
{
if(a>b)
return a;
else
return b;
}
}
本文通过具体示例介绍了一种解决一维背包问题的方法。利用动态规划的思想,演示了如何根据物品的重量和价值来最大化背包装载的价值。通过一段Java代码实现了解决方案,并给出了最终的最优解。
815

被折叠的 条评论
为什么被折叠?



