diff --git a/problems/0518.零钱兑换II.md b/problems/0518.零钱兑换II.md index 222a10d7..3abb9601 100644 --- a/problems/0518.零钱兑换II.md +++ b/problems/0518.零钱兑换II.md @@ -289,7 +289,22 @@ function change(amount: number, coins: number[]): number { }; ``` +Scala: +```scala +object Solution { + def change(amount: Int, coins: Array[Int]): Int = { + var dp = new Array[Int](amount + 1) + dp(0) = 1 + for (i <- 0 until coins.length) { + for (j <- coins(i) to amount) { + dp(j) += dp(j - coins(i)) + } + } + dp(amount) + } +} +``` -----------------------
diff --git a/problems/背包问题理论基础完全背包.md b/problems/背包问题理论基础完全背包.md index 54e772e0..fc4609a6 100644 --- a/problems/背包问题理论基础完全背包.md +++ b/problems/背包问题理论基础完全背包.md @@ -359,7 +359,27 @@ function test_CompletePack(): void { test_CompletePack(); ``` +Scala: +```scala +// 先遍历物品,再遍历背包容量 +object Solution { + def test_CompletePack() { + var weight = Array[Int](1, 3, 4) + var value = Array[Int](15, 20, 30) + var baseweight = 4 + + var dp = new Array[Int](baseweight + 1) + + for (i <- 0 until weight.length) { + for (j <- weight(i) to baseweight) { + dp(j) = math.max(dp(j), dp(j - weight(i)) + value(i)) + } + } + dp(baseweight) + } +} +``` -----------------------