This commit is contained in:
krahets
2024-04-13 21:17:44 +08:00
parent 9332a91e26
commit 6afa70e7bc
55 changed files with 334 additions and 182 deletions

View File

@ -1036,11 +1036,7 @@ $$
```kotlin title="knapsack.kt"
/* 0-1 背包:動態規劃 */
fun knapsackDP(
wgt: IntArray,
_val: IntArray,
cap: Int
): Int {
fun knapsackDP(wgt: IntArray, _val: IntArray, cap: Int): Int {
val n = wgt.size
// 初始化 dp 表
val dp = Array(n + 1) { IntArray(cap + 1) }
@ -1429,11 +1425,7 @@ $$
```kotlin title="knapsack.kt"
/* 0-1 背包:空間最佳化後的動態規劃 */
fun knapsackDPComp(
wgt: IntArray,
_val: IntArray,
cap: Int
): Int {
fun knapsackDPComp(wgt: IntArray, _val: IntArray, cap: Int): Int {
val n = wgt.size
// 初始化 dp 表
val dp = IntArray(cap + 1)
@ -1443,8 +1435,7 @@ $$
for (c in cap downTo 1) {
if (wgt[i - 1] <= c) {
// 不選和選物品 i 這兩種方案的較大值
dp[c] =
max(dp[c], dp[c - wgt[i - 1]] + _val[i - 1])
dp[c] = max(dp[c], dp[c - wgt[i - 1]] + _val[i - 1])
}
}
}