生活随笔
收集整理的這篇文章主要介紹了
背包问题+图解
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
圖解
代碼實(shí)現(xiàn)
package com
.atguigu
.dynamic
;
public class KnapsackProblem {public static void main(String
[] args
) {int[] w
={1,4,3};int[] val
={1500,3000,2000};int m
=4;int n
=val
.length
;int[][] v
= new int[n
+ 1][m
+ 1];int[][] path
= new int[n
+ 1][m
+ 1];for (int i
= 0; i
< v
.length
; i
++) {v
[i
][0]=0;}for (int i
= 0; i
< v
[0].length
; i
++) {v
[0][i
]=0;}for (int i
= 1; i
< v
.length
; i
++) {for (int j
= 1; j
< v
[0].length
; j
++) {if(w
[i
-1]>j
){v
[i
][j
]=v
[i
-1][j
];}else {
if (v
[i
-1][j
]<val
[i
-1]+v
[i
-1][j
-w
[i
-1]]){v
[i
][j
]=val
[i
-1]+v
[i
-1][j
-w
[i
-1]];path
[i
][j
]=1;}else {v
[i
][j
]=v
[i
-1][j
];}}}}for (int i
= 0; i
< v
.length
; i
++) {for (int j
= 0; j
< v
[i
].length
; j
++) {System
.out
.print(v
[i
][j
]+" ");}System
.out
.println();}
int i
=path
.length
-1;int j
=path
[0].length
-1;while (i
>0&&j
>0){if (path
[i
][j
]==1){System
.out
.println("第"+i
+"個(gè)商品放入到背包");j
-=w
[i
-1];}i
--;}}
}
總結(jié)
以上是生活随笔為你收集整理的背包问题+图解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。