_01揹包問題----簡單粗暴

對揹包問題的總結:

首先說遞推公式:

arr[i][j] = Math.max(arr[i – 1][j], arr[i – 1][j – w[i]] + v[i]);

w[i]爲物品質量的數組,v[i]爲物品價值的數組

arr[i][j]表示裝i個物品(實際上這裏的i,arr[i][j] 表示裝i個物品,w[i],v[i]表示選擇第i個物品),承重爲j時揹包的最大價值,

首先容易想到arr[i][0] == 0(即arr[1][0],arr[2][0]….)   因爲j==0表示承重爲0,自然裝不下東西,所以總價值爲0

然後arr[0][j] == 0….   原因是雖然可以承重j 但是裝了0個物品 故總價值爲0。

感謝大佬博客–轉載自:http://blog.csdn.net/mu399/article/details/7722810

另外這裏有測試數據:https://zhidao.baidu.com/question/77646243

—–大佬博客寫的很詳細,不過其實搞懂裏面那個圖就好了

理解了思想其實也就不那麼難。

一直看博客不是辦法,以爲自己會了其實並不會,多動手碼一碼,其實沒有那麼難。

—–獻給想成爲大佬的我們

点赞