我工作的这个动态规划问题,我卡在Java中动态PROG帮助(背包)
的目标是要找到的热量最低数量才能准确地度过写迭代求解X美分。如果我们不能花费X美分,那么就没有解决方案。我们给出N个物品的数量,每个物品的价值V和卡路里C归因于它。
public static void iterative(int[] v, int[] c, String[] items, int X, int num_items)
{
System.out.println("Iterative");
int N = num_items;
int[] min = new int[X];
int i, j;
for(i=1 i < X; i++) {
min[i] = Integer.MAX_VALUE;
}
min[0] = 0;
for(i=1;i<=X;i++)
{
for(j=0;j<N;j++)
{
if(v[j]<=i && ((min[i-v[j]]+c[i]) < min[i])) //Wrong?
{
min[i] = min[i-v[j]] + 1;
}
}
}
}
我想我只是不真正了解迭代步骤的递归关系。
你是否清楚背包算法。 ? – Saif
对我来说还是很新鲜的东西,只是看着http://en.wikipedia.org/wiki/Knapsack_problem和其他例子。 – Leroy