Skip to content

Commit f75acf5

Browse files
committed
0-1背包javascript版本
1 parent 56045e0 commit f75acf5

File tree

2 files changed

+69
-0
lines changed

2 files changed

+69
-0
lines changed

problems/背包理论基础01背包-1.md

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -380,6 +380,52 @@ func main() {
380380
}
381381
```
382382

383+
javaScript:
384+
385+
```js
386+
function testWeightBagProblem (wight, value, size) {
387+
const len = wight.length,
388+
dp = Array.from({length: len + 1}).map(
389+
() => Array(size + 1).fill(0)
390+
);
391+
392+
for(let i = 1; i <= len; i++) {
393+
for(let j = 0; j <= size; j++) {
394+
if(wight[i - 1] <= j) {
395+
dp[i][j] = Math.max(
396+
dp[i - 1][j],
397+
value[i - 1] + dp[i - 1][j - wight[i - 1]]
398+
)
399+
} else {
400+
dp[i][j] = dp[i - 1][j];
401+
}
402+
}
403+
}
404+
405+
// console.table(dp);
406+
407+
return dp[len][size];
408+
}
409+
410+
function testWeightBagProblem2 (wight, value, size) {
411+
const len = wight.length,
412+
dp = Array(size + 1).fill(0);
413+
for(let i = 1; i <= len; i++) {
414+
for(let j = size; j >= wight[i - 1]; j--) {
415+
dp[j] = Math.max(dp[j], value[i - 1] + dp[j - wight[i - 1]]);
416+
}
417+
}
418+
return dp[size];
419+
}
420+
421+
422+
function test () {
423+
console.log(testWeightBagProblem([1, 3, 4, 5], [15, 20, 30, 55], 6));
424+
}
425+
426+
test();
427+
```
428+
383429
-----------------------
384430
* 作者微信:[程序员Carl](https://mp.weixin.qq.com/s/b66DFkOp8OOxdZC_xLZxfw)
385431
* B站视频:[代码随想录](https://space.bilibili.com/525438321)

problems/背包理论基础01背包-2.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -294,6 +294,29 @@ func main() {
294294
}
295295
```
296296

297+
javaScript:
298+
299+
```js
300+
301+
function testWeightBagProblem(wight, value, size) {
302+
const len = wight.length,
303+
dp = Array(size + 1).fill(0);
304+
for(let i = 1; i <= len; i++) {
305+
for(let j = size; j >= wight[i - 1]; j--) {
306+
dp[j] = Math.max(dp[j], value[i - 1] + dp[j - wight[i - 1]]);
307+
}
308+
}
309+
return dp[size];
310+
}
311+
312+
313+
function test () {
314+
console.log(testWeightBagProblem([1, 3, 4, 5], [15, 20, 30, 55], 6));
315+
}
316+
317+
test();
318+
```
319+
297320

298321

299322
-----------------------

0 commit comments

Comments
 (0)