揹包問題 LintCode

2021-08-19 21:45:56 字數 1079 閱讀 8270

首次在lintcode上做了乙個打敗了100%提交的答案,一定要紀念一下

下面進入正題:揹包問題-lintcode

問題描述:

在n個物品中挑選若干物品裝入揹包,最多能裝多滿?假設揹包的大小為m,每個物品的大小為a[i]
注意事項:不可以將物品進行切割。

樣例說明:

如果有4個物品[2, 3, 5, 7]

如果揹包的大小為11,可以選擇[2, 3, 5]裝入揹包,最多可以裝滿10的空間。

如果揹包的大小為12,可以選擇[2, 3, 7]裝入揹包,最多可以裝滿12的空間。

函式需要返回最多能裝滿的空間大小。

問題分析:

首先,我們可以先將陣列進行排序,然後從某乙個開始,不斷地向後拾取元素放入揹包中,知道不能放入為止

使用到的演算法是深度優先演算法

**實現:

/**

* @author 作者 john l:

*/public class testbackpack ;

system.out.println(backpack(5000, a)); }

public int backpack(int m, int a)

/*** @param array 已經排序好了的陣列

* @param total 揹包的大小

* @param indexfrom 只能從index後面拾取元素放入揹包

* @param currentcount 揹包中已經裝入的大小

* @return 在array陣列中,從indexfrom開始到length-1所能拾取的最大大小(這個值一定要小於total-currentcount)

*/private int backpack(int array, int total, int indexfrom, int currentcount)

return max;}}

LintCode 揹包問題

揹包問題 在n個物品中挑選若干物品裝入揹包,最多能裝多滿?假設揹包的大小為m,每個物品的大小為a i 您在真實的面試中是否遇到過這個題?yes 樣例如果有4個物品 2,3,5,7 如果揹包的大小為11,可以選擇 2,3,5 裝入揹包,最多可以裝滿10的空間。如果揹包的大小為12,可以選擇 2,3,7...

揹包問題 LintCode

在n個物品中挑選若干物品裝入揹包,最多能裝多滿?假設揹包的大小為m,每個物品的大小為a i 樣例 如果有4個物品 2,3,5,7 如果揹包的大小為11,可以選擇 2,3,5 裝入揹包,最多可以裝滿10的空間。如果揹包的大小為12,可以選擇 2,3,7 裝入揹包,最多可以裝滿12的空間。函式需要返回最...

Lintcode 0 1揹包問題

狀態轉移方程dp i j max dp i 1 j dp i 1 j w i 1 v i 1 i代表第幾個物品,j代表揹包容量,w i 1 v i 1 代表第i個物品的重量和價值。揹包問題i class solution param m an integer m denotes the size o...