当前位置: 首页 > 面试题库 >

手写代码:01背包

蔡鹏程
2023-03-14
本文向大家介绍手写代码:01背包相关面试题,主要包含被问及手写代码:01背包时的应答技巧和注意事项,需要的朋友参考一下

参考回答:

void FindMax()//动态规划
{
int i,j;
//填表
for(i=1;i<=number;i++)
{
	for(j=1;j<=capacity;j++)
	{
		if(j<w[i])//包装不进
		{
			V[i][j]=V[i-1][j];
		}
		else//能装
		{
			if(V[i-1][j]>V[i-1][j-w[i]]+v[i])//不装价值大
			{
				V[i][j]=V[i-1][j];
			}
			else//前i-1个物品的最优解与第i个物品的价值之和更大
			{
				V[i][j]=V[i-1][j-w[i]]+v[i];
			}
		}
	}
	}
}

 

 类似资料:
  • 主要内容:动态规划解决01背包问题,01背包问题的具体实现商店的货架上摆放着不同重量和价值的商品,一个小偷在商店行窃,他携带的背包只能装固定重量的商品。装哪些商品才能获得最大的收益呢?在限定条件内找到最佳的物品组合,这样的问题统称为背包问题。 根据限定的条件不同,背包问题还可以细分: 部分背包问题:所有物品是可再分的,即允许将某件物品的一部分(例如 1/3)放入背包; 0-1 背包问题:所有物品不可再分,要么整个装入背包,要么放弃,不允许出现“仅选择物品

  • 本文向大家介绍手写代码:LCS问题相关面试题,主要包含被问及手写代码:LCS问题时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 最长公共子序列代码  

  • 本文向大家介绍手写代码:二分查找的代码?相关面试题,主要包含被问及手写代码:二分查找的代码?时的应答技巧和注意事项,需要的朋友参考一下 参考回答:  

  • 经典背包。 这里有一个转折:在这些物品中,我需要确保我有从不同类别中提取的特定数量(不是最高的,而是确切的数量)。 所以让我们假设我们有类别 null

  • 本文向大家介绍手写代码:反转链表相关面试题,主要包含被问及手写代码:反转链表时的应答技巧和注意事项,需要的朋友参考一下 参考回答:  

  • 本文向大家介绍手写代码:冒泡排序相关面试题,主要包含被问及手写代码:冒泡排序时的应答技巧和注意事项,需要的朋友参考一下 参考回答: