mirror of
https://github.com/krahets/hello-algo.git
synced 2026-04-13 17:09:46 +08:00
A few bug fixes.
This commit is contained in:
@@ -26,7 +26,7 @@ int coinChangeDP(int coins[], int amt, int coinsSize) {
|
||||
for (int i = 1; i <= n; i++) {
|
||||
for (int a = 1; a <= amt; a++) {
|
||||
if (coins[i - 1] > a) {
|
||||
// 若超过背包容量,则不选硬币 i
|
||||
// 若超过目标金额,则不选硬币 i
|
||||
dp[i][a] = dp[i - 1][a];
|
||||
} else {
|
||||
// 不选和选硬币 i 这两种方案的较小值
|
||||
@@ -49,7 +49,7 @@ int coinChangeDPComp(int coins[], int amt, int coinsSize) {
|
||||
for (int i = 1; i <= n; i++) {
|
||||
for (int a = 1; a <= amt; a++) {
|
||||
if (coins[i - 1] > a) {
|
||||
// 若超过背包容量,则不选硬币 i
|
||||
// 若超过目标金额,则不选硬币 i
|
||||
dp[a] = dp[a];
|
||||
} else {
|
||||
// 不选和选硬币 i 这两种方案的较小值
|
||||
|
||||
@@ -20,7 +20,7 @@ int coinChangeIIDP(int coins[], int amt, int coinsSize) {
|
||||
for (int i = 1; i <= n; i++) {
|
||||
for (int a = 1; a <= amt; a++) {
|
||||
if (coins[i - 1] > a) {
|
||||
// 若超过背包容量,则不选硬币 i
|
||||
// 若超过目标金额,则不选硬币 i
|
||||
dp[i][a] = dp[i - 1][a];
|
||||
} else {
|
||||
// 不选和选硬币 i 这两种方案之和
|
||||
@@ -42,7 +42,7 @@ int coinChangeIIDPComp(int coins[], int amt, int coinsSize) {
|
||||
for (int i = 1; i <= n; i++) {
|
||||
for (int a = 1; a <= amt; a++) {
|
||||
if (coins[i - 1] > a) {
|
||||
// 若超过背包容量,则不选硬币 i
|
||||
// 若超过目标金额,则不选硬币 i
|
||||
dp[a] = dp[a];
|
||||
} else {
|
||||
// 不选和选硬币 i 这两种方案之和
|
||||
|
||||
@@ -20,7 +20,7 @@ int coinChangeDP(vector<int> &coins, int amt) {
|
||||
for (int i = 1; i <= n; i++) {
|
||||
for (int a = 1; a <= amt; a++) {
|
||||
if (coins[i - 1] > a) {
|
||||
// 若超过背包容量,则不选硬币 i
|
||||
// 若超过目标金额,则不选硬币 i
|
||||
dp[i][a] = dp[i - 1][a];
|
||||
} else {
|
||||
// 不选和选硬币 i 这两种方案的较小值
|
||||
@@ -42,7 +42,7 @@ int coinChangeDPComp(vector<int> &coins, int amt) {
|
||||
for (int i = 1; i <= n; i++) {
|
||||
for (int a = 1; a <= amt; a++) {
|
||||
if (coins[i - 1] > a) {
|
||||
// 若超过背包容量,则不选硬币 i
|
||||
// 若超过目标金额,则不选硬币 i
|
||||
dp[a] = dp[a];
|
||||
} else {
|
||||
// 不选和选硬币 i 这两种方案的较小值
|
||||
|
||||
@@ -19,7 +19,7 @@ int coinChangeIIDP(vector<int> &coins, int amt) {
|
||||
for (int i = 1; i <= n; i++) {
|
||||
for (int a = 1; a <= amt; a++) {
|
||||
if (coins[i - 1] > a) {
|
||||
// 若超过背包容量,则不选硬币 i
|
||||
// 若超过目标金额,则不选硬币 i
|
||||
dp[i][a] = dp[i - 1][a];
|
||||
} else {
|
||||
// 不选和选硬币 i 这两种方案之和
|
||||
@@ -40,7 +40,7 @@ int coinChangeIIDPComp(vector<int> &coins, int amt) {
|
||||
for (int i = 1; i <= n; i++) {
|
||||
for (int a = 1; a <= amt; a++) {
|
||||
if (coins[i - 1] > a) {
|
||||
// 若超过背包容量,则不选硬币 i
|
||||
// 若超过目标金额,则不选硬币 i
|
||||
dp[a] = dp[a];
|
||||
} else {
|
||||
// 不选和选硬币 i 这两种方案之和
|
||||
|
||||
@@ -21,7 +21,7 @@ public class coin_change {
|
||||
for (int i = 1; i <= n; i++) {
|
||||
for (int a = 1; a <= amt; a++) {
|
||||
if (coins[i - 1] > a) {
|
||||
// 若超过背包容量,则不选硬币 i
|
||||
// 若超过目标金额,则不选硬币 i
|
||||
dp[i, a] = dp[i - 1, a];
|
||||
} else {
|
||||
// 不选和选硬币 i 这两种方案的较小值
|
||||
@@ -44,7 +44,7 @@ public class coin_change {
|
||||
for (int i = 1; i <= n; i++) {
|
||||
for (int a = 1; a <= amt; a++) {
|
||||
if (coins[i - 1] > a) {
|
||||
// 若超过背包容量,则不选硬币 i
|
||||
// 若超过目标金额,则不选硬币 i
|
||||
dp[a] = dp[a];
|
||||
} else {
|
||||
// 不选和选硬币 i 这两种方案的较小值
|
||||
|
||||
@@ -20,7 +20,7 @@ public class coin_change_ii {
|
||||
for (int i = 1; i <= n; i++) {
|
||||
for (int a = 1; a <= amt; a++) {
|
||||
if (coins[i - 1] > a) {
|
||||
// 若超过背包容量,则不选硬币 i
|
||||
// 若超过目标金额,则不选硬币 i
|
||||
dp[i, a] = dp[i - 1, a];
|
||||
} else {
|
||||
// 不选和选硬币 i 这两种方案之和
|
||||
@@ -41,7 +41,7 @@ public class coin_change_ii {
|
||||
for (int i = 1; i <= n; i++) {
|
||||
for (int a = 1; a <= amt; a++) {
|
||||
if (coins[i - 1] > a) {
|
||||
// 若超过背包容量,则不选硬币 i
|
||||
// 若超过目标金额,则不选硬币 i
|
||||
dp[a] = dp[a];
|
||||
} else {
|
||||
// 不选和选硬币 i 这两种方案之和
|
||||
|
||||
@@ -20,7 +20,7 @@ int coinChangeDP(List<int> coins, int amt) {
|
||||
for (int i = 1; i <= n; i++) {
|
||||
for (int a = 1; a <= amt; a++) {
|
||||
if (coins[i - 1] > a) {
|
||||
// 若超过背包容量,则不选硬币 i
|
||||
// 若超过目标金额,则不选硬币 i
|
||||
dp[i][a] = dp[i - 1][a];
|
||||
} else {
|
||||
// 不选和选硬币 i 这两种方案的较小值
|
||||
@@ -42,7 +42,7 @@ int coinChangeDPComp(List<int> coins, int amt) {
|
||||
for (int i = 1; i <= n; i++) {
|
||||
for (int a = 1; a <= amt; a++) {
|
||||
if (coins[i - 1] > a) {
|
||||
// 若超过背包容量,则不选硬币 i
|
||||
// 若超过目标金额,则不选硬币 i
|
||||
dp[a] = dp[a];
|
||||
} else {
|
||||
// 不选和选硬币 i 这两种方案的较小值
|
||||
|
||||
@@ -17,7 +17,7 @@ int coinChangeIIDP(List<int> coins, int amt) {
|
||||
for (int i = 1; i <= n; i++) {
|
||||
for (int a = 1; a <= amt; a++) {
|
||||
if (coins[i - 1] > a) {
|
||||
// 若超过背包容量,则不选硬币 i
|
||||
// 若超过目标金额,则不选硬币 i
|
||||
dp[i][a] = dp[i - 1][a];
|
||||
} else {
|
||||
// 不选和选硬币 i 这两种方案之和
|
||||
@@ -38,7 +38,7 @@ int coinChangeIIDPComp(List<int> coins, int amt) {
|
||||
for (int i = 1; i <= n; i++) {
|
||||
for (int a = 1; a <= amt; a++) {
|
||||
if (coins[i - 1] > a) {
|
||||
// 若超过背包容量,则不选硬币 i
|
||||
// 若超过目标金额,则不选硬币 i
|
||||
dp[a] = dp[a];
|
||||
} else {
|
||||
// 不选和选硬币 i 这两种方案之和
|
||||
|
||||
@@ -23,7 +23,7 @@ func coinChangeDP(coins []int, amt int) int {
|
||||
for i := 1; i <= n; i++ {
|
||||
for a := 1; a <= amt; a++ {
|
||||
if coins[i-1] > a {
|
||||
// 若超过背包容量,则不选硬币 i
|
||||
// 若超过目标金额,则不选硬币 i
|
||||
dp[i][a] = dp[i-1][a]
|
||||
} else {
|
||||
// 不选和选硬币 i 这两种方案的较小值
|
||||
@@ -51,7 +51,7 @@ func coinChangeDPComp(coins []int, amt int) int {
|
||||
// 倒序遍历
|
||||
for a := 1; a <= amt; a++ {
|
||||
if coins[i-1] > a {
|
||||
// 若超过背包容量,则不选硬币 i
|
||||
// 若超过目标金额,则不选硬币 i
|
||||
dp[a] = dp[a]
|
||||
} else {
|
||||
// 不选和选硬币 i 这两种方案的较小值
|
||||
|
||||
@@ -20,7 +20,7 @@ func coinChangeIIDP(coins []int, amt int) int {
|
||||
for i := 1; i <= n; i++ {
|
||||
for a := 1; a <= amt; a++ {
|
||||
if coins[i-1] > a {
|
||||
// 若超过背包容量,则不选硬币 i
|
||||
// 若超过目标金额,则不选硬币 i
|
||||
dp[i][a] = dp[i-1][a]
|
||||
} else {
|
||||
// 不选和选硬币 i 这两种方案之和
|
||||
@@ -42,7 +42,7 @@ func coinChangeIIDPComp(coins []int, amt int) int {
|
||||
// 倒序遍历
|
||||
for a := 1; a <= amt; a++ {
|
||||
if coins[i-1] > a {
|
||||
// 若超过背包容量,则不选硬币 i
|
||||
// 若超过目标金额,则不选硬币 i
|
||||
dp[a] = dp[a]
|
||||
} else {
|
||||
// 不选和选硬币 i 这两种方案之和
|
||||
|
||||
@@ -23,7 +23,7 @@ public class coin_change {
|
||||
for (int i = 1; i <= n; i++) {
|
||||
for (int a = 1; a <= amt; a++) {
|
||||
if (coins[i - 1] > a) {
|
||||
// 若超过背包容量,则不选硬币 i
|
||||
// 若超过目标金额,则不选硬币 i
|
||||
dp[i][a] = dp[i - 1][a];
|
||||
} else {
|
||||
// 不选和选硬币 i 这两种方案的较小值
|
||||
@@ -46,7 +46,7 @@ public class coin_change {
|
||||
for (int i = 1; i <= n; i++) {
|
||||
for (int a = 1; a <= amt; a++) {
|
||||
if (coins[i - 1] > a) {
|
||||
// 若超过背包容量,则不选硬币 i
|
||||
// 若超过目标金额,则不选硬币 i
|
||||
dp[a] = dp[a];
|
||||
} else {
|
||||
// 不选和选硬币 i 这两种方案的较小值
|
||||
|
||||
@@ -20,7 +20,7 @@ public class coin_change_ii {
|
||||
for (int i = 1; i <= n; i++) {
|
||||
for (int a = 1; a <= amt; a++) {
|
||||
if (coins[i - 1] > a) {
|
||||
// 若超过背包容量,则不选硬币 i
|
||||
// 若超过目标金额,则不选硬币 i
|
||||
dp[i][a] = dp[i - 1][a];
|
||||
} else {
|
||||
// 不选和选硬币 i 这两种方案之和
|
||||
@@ -41,7 +41,7 @@ public class coin_change_ii {
|
||||
for (int i = 1; i <= n; i++) {
|
||||
for (int a = 1; a <= amt; a++) {
|
||||
if (coins[i - 1] > a) {
|
||||
// 若超过背包容量,则不选硬币 i
|
||||
// 若超过目标金额,则不选硬币 i
|
||||
dp[a] = dp[a];
|
||||
} else {
|
||||
// 不选和选硬币 i 这两种方案之和
|
||||
|
||||
@@ -20,7 +20,7 @@ function coinChangeDP(coins, amt) {
|
||||
for (let i = 1; i <= n; i++) {
|
||||
for (let a = 1; a <= amt; a++) {
|
||||
if (coins[i - 1] > a) {
|
||||
// 若超过背包容量,则不选硬币 i
|
||||
// 若超过目标金额,则不选硬币 i
|
||||
dp[i][a] = dp[i - 1][a];
|
||||
} else {
|
||||
// 不选和选硬币 i 这两种方案的较小值
|
||||
@@ -42,7 +42,7 @@ function coinChangeDPComp(coins, amt) {
|
||||
for (let i = 1; i <= n; i++) {
|
||||
for (let a = 1; a <= amt; a++) {
|
||||
if (coins[i - 1] > a) {
|
||||
// 若超过背包容量,则不选硬币 i
|
||||
// 若超过目标金额,则不选硬币 i
|
||||
dp[a] = dp[a];
|
||||
} else {
|
||||
// 不选和选硬币 i 这两种方案的较小值
|
||||
|
||||
@@ -19,7 +19,7 @@ function coinChangeIIDP(coins, amt) {
|
||||
for (let i = 1; i <= n; i++) {
|
||||
for (let a = 1; a <= amt; a++) {
|
||||
if (coins[i - 1] > a) {
|
||||
// 若超过背包容量,则不选硬币 i
|
||||
// 若超过目标金额,则不选硬币 i
|
||||
dp[i][a] = dp[i - 1][a];
|
||||
} else {
|
||||
// 不选和选硬币 i 这两种方案之和
|
||||
@@ -40,7 +40,7 @@ function coinChangeIIDPComp(coins, amt) {
|
||||
for (let i = 1; i <= n; i++) {
|
||||
for (let a = 1; a <= amt; a++) {
|
||||
if (coins[i - 1] > a) {
|
||||
// 若超过背包容量,则不选硬币 i
|
||||
// 若超过目标金额,则不选硬币 i
|
||||
dp[a] = dp[a];
|
||||
} else {
|
||||
// 不选和选硬币 i 这两种方案之和
|
||||
|
||||
@@ -18,7 +18,7 @@ def coin_change_dp(coins: list[int], amt: int) -> int:
|
||||
for i in range(1, n + 1):
|
||||
for a in range(1, amt + 1):
|
||||
if coins[i - 1] > a:
|
||||
# 若超过背包容量,则不选硬币 i
|
||||
# 若超过目标金额,则不选硬币 i
|
||||
dp[i][a] = dp[i - 1][a]
|
||||
else:
|
||||
# 不选和选硬币 i 这两种方案的较小值
|
||||
@@ -38,7 +38,7 @@ def coin_change_dp_comp(coins: list[int], amt: int) -> int:
|
||||
# 正序遍历
|
||||
for a in range(1, amt + 1):
|
||||
if coins[i - 1] > a:
|
||||
# 若超过背包容量,则不选硬币 i
|
||||
# 若超过目标金额,则不选硬币 i
|
||||
dp[a] = dp[a]
|
||||
else:
|
||||
# 不选和选硬币 i 这两种方案的较小值
|
||||
|
||||
@@ -17,7 +17,7 @@ def coin_change_ii_dp(coins: list[int], amt: int) -> int:
|
||||
for i in range(1, n + 1):
|
||||
for a in range(1, amt + 1):
|
||||
if coins[i - 1] > a:
|
||||
# 若超过背包容量,则不选硬币 i
|
||||
# 若超过目标金额,则不选硬币 i
|
||||
dp[i][a] = dp[i - 1][a]
|
||||
else:
|
||||
# 不选和选硬币 i 这两种方案之和
|
||||
@@ -36,7 +36,7 @@ def coin_change_ii_dp_comp(coins: list[int], amt: int) -> int:
|
||||
# 正序遍历
|
||||
for a in range(1, amt + 1):
|
||||
if coins[i - 1] > a:
|
||||
# 若超过背包容量,则不选硬币 i
|
||||
# 若超过目标金额,则不选硬币 i
|
||||
dp[a] = dp[a]
|
||||
else:
|
||||
# 不选和选硬币 i 这两种方案之和
|
||||
|
||||
@@ -18,7 +18,7 @@ fn coin_change_dp(coins: &[i32], amt: usize) -> i32 {
|
||||
for i in 1..=n {
|
||||
for a in 1..=amt {
|
||||
if coins[i - 1] > a as i32 {
|
||||
// 若超过背包容量,则不选硬币 i
|
||||
// 若超过目标金额,则不选硬币 i
|
||||
dp[i][a] = dp[i - 1][a];
|
||||
} else {
|
||||
// 不选和选硬币 i 这两种方案的较小值
|
||||
@@ -41,7 +41,7 @@ fn coin_change_dp_comp(coins: &[i32], amt: usize) -> i32 {
|
||||
for i in 1..=n {
|
||||
for a in 1..=amt {
|
||||
if coins[i - 1] > a as i32 {
|
||||
// 若超过背包容量,则不选硬币 i
|
||||
// 若超过目标金额,则不选硬币 i
|
||||
dp[a] = dp[a];
|
||||
} else {
|
||||
// 不选和选硬币 i 这两种方案的较小值
|
||||
|
||||
@@ -17,7 +17,7 @@ fn coin_change_ii_dp(coins: &[i32], amt: usize) -> i32 {
|
||||
for i in 1..=n {
|
||||
for a in 1..=amt {
|
||||
if coins[i - 1] > a as i32 {
|
||||
// 若超过背包容量,则不选硬币 i
|
||||
// 若超过目标金额,则不选硬币 i
|
||||
dp[i][a] = dp[i - 1][a];
|
||||
} else {
|
||||
// 不选和选硬币 i 这两种方案的较小值
|
||||
@@ -38,7 +38,7 @@ fn coin_change_ii_dp_comp(coins: &[i32], amt: usize) -> i32 {
|
||||
for i in 1..=n {
|
||||
for a in 1..=amt {
|
||||
if coins[i - 1] > a as i32 {
|
||||
// 若超过背包容量,则不选硬币 i
|
||||
// 若超过目标金额,则不选硬币 i
|
||||
dp[a] = dp[a];
|
||||
} else {
|
||||
// 不选和选硬币 i 这两种方案的较小值
|
||||
|
||||
@@ -18,7 +18,7 @@ func coinChangeDP(coins: [Int], amt: Int) -> Int {
|
||||
for i in stride(from: 1, through: n, by: 1) {
|
||||
for a in stride(from: 1, through: amt, by: 1) {
|
||||
if coins[i - 1] > a {
|
||||
// 若超过背包容量,则不选硬币 i
|
||||
// 若超过目标金额,则不选硬币 i
|
||||
dp[i][a] = dp[i - 1][a]
|
||||
} else {
|
||||
// 不选和选硬币 i 这两种方案的较小值
|
||||
@@ -40,7 +40,7 @@ func coinChangeDPComp(coins: [Int], amt: Int) -> Int {
|
||||
for i in stride(from: 1, through: n, by: 1) {
|
||||
for a in stride(from: 1, through: amt, by: 1) {
|
||||
if coins[i - 1] > a {
|
||||
// 若超过背包容量,则不选硬币 i
|
||||
// 若超过目标金额,则不选硬币 i
|
||||
dp[a] = dp[a]
|
||||
} else {
|
||||
// 不选和选硬币 i 这两种方案的较小值
|
||||
|
||||
@@ -17,7 +17,7 @@ func coinChangeIIDP(coins: [Int], amt: Int) -> Int {
|
||||
for i in stride(from: 1, through: n, by: 1) {
|
||||
for a in stride(from: 1, through: amt, by: 1) {
|
||||
if coins[i - 1] > a {
|
||||
// 若超过背包容量,则不选硬币 i
|
||||
// 若超过目标金额,则不选硬币 i
|
||||
dp[i][a] = dp[i - 1][a]
|
||||
} else {
|
||||
// 不选和选硬币 i 这两种方案之和
|
||||
@@ -38,7 +38,7 @@ func coinChangeIIDPComp(coins: [Int], amt: Int) -> Int {
|
||||
for i in stride(from: 1, through: n, by: 1) {
|
||||
for a in stride(from: 1, through: amt, by: 1) {
|
||||
if coins[i - 1] > a {
|
||||
// 若超过背包容量,则不选硬币 i
|
||||
// 若超过目标金额,则不选硬币 i
|
||||
dp[a] = dp[a]
|
||||
} else {
|
||||
// 不选和选硬币 i 这两种方案之和
|
||||
|
||||
@@ -20,7 +20,7 @@ function coinChangeDP(coins: Array<number>, amt: number): number {
|
||||
for (let i = 1; i <= n; i++) {
|
||||
for (let a = 1; a <= amt; a++) {
|
||||
if (coins[i - 1] > a) {
|
||||
// 若超过背包容量,则不选硬币 i
|
||||
// 若超过目标金额,则不选硬币 i
|
||||
dp[i][a] = dp[i - 1][a];
|
||||
} else {
|
||||
// 不选和选硬币 i 这两种方案的较小值
|
||||
@@ -42,7 +42,7 @@ function coinChangeDPComp(coins: Array<number>, amt: number): number {
|
||||
for (let i = 1; i <= n; i++) {
|
||||
for (let a = 1; a <= amt; a++) {
|
||||
if (coins[i - 1] > a) {
|
||||
// 若超过背包容量,则不选硬币 i
|
||||
// 若超过目标金额,则不选硬币 i
|
||||
dp[a] = dp[a];
|
||||
} else {
|
||||
// 不选和选硬币 i 这两种方案的较小值
|
||||
|
||||
@@ -19,7 +19,7 @@ function coinChangeIIDP(coins: Array<number>, amt: number): number {
|
||||
for (let i = 1; i <= n; i++) {
|
||||
for (let a = 1; a <= amt; a++) {
|
||||
if (coins[i - 1] > a) {
|
||||
// 若超过背包容量,则不选硬币 i
|
||||
// 若超过目标金额,则不选硬币 i
|
||||
dp[i][a] = dp[i - 1][a];
|
||||
} else {
|
||||
// 不选和选硬币 i 这两种方案之和
|
||||
@@ -40,7 +40,7 @@ function coinChangeIIDPComp(coins: Array<number>, amt: number): number {
|
||||
for (let i = 1; i <= n; i++) {
|
||||
for (let a = 1; a <= amt; a++) {
|
||||
if (coins[i - 1] > a) {
|
||||
// 若超过背包容量,则不选硬币 i
|
||||
// 若超过目标金额,则不选硬币 i
|
||||
dp[a] = dp[a];
|
||||
} else {
|
||||
// 不选和选硬币 i 这两种方案之和
|
||||
|
||||
@@ -18,7 +18,7 @@ fn coinChangeDP(comptime coins: []i32, comptime amt: usize) i32 {
|
||||
for (1..n + 1) |i| {
|
||||
for (1..amt + 1) |a| {
|
||||
if (coins[i - 1] > @as(i32, @intCast(a))) {
|
||||
// 若超过背包容量,则不选硬币 i
|
||||
// 若超过目标金额,则不选硬币 i
|
||||
dp[i][a] = dp[i - 1][a];
|
||||
} else {
|
||||
// 不选和选硬币 i 这两种方案的较小值
|
||||
@@ -45,7 +45,7 @@ fn coinChangeDPComp(comptime coins: []i32, comptime amt: usize) i32 {
|
||||
for (1..n + 1) |i| {
|
||||
for (1..amt + 1) |a| {
|
||||
if (coins[i - 1] > @as(i32, @intCast(a))) {
|
||||
// 若超过背包容量,则不选硬币 i
|
||||
// 若超过目标金额,则不选硬币 i
|
||||
dp[a] = dp[a];
|
||||
} else {
|
||||
// 不选和选硬币 i 这两种方案的较小值
|
||||
|
||||
@@ -17,7 +17,7 @@ fn coinChangeIIDP(comptime coins: []i32, comptime amt: usize) i32 {
|
||||
for (1..n + 1) |i| {
|
||||
for (1..amt + 1) |a| {
|
||||
if (coins[i - 1] > @as(i32, @intCast(a))) {
|
||||
// 若超过背包容量,则不选硬币 i
|
||||
// 若超过目标金额,则不选硬币 i
|
||||
dp[i][a] = dp[i - 1][a];
|
||||
} else {
|
||||
// 不选和选硬币 i 这两种方案的较小值
|
||||
@@ -38,7 +38,7 @@ fn coinChangeIIDPComp(comptime coins: []i32, comptime amt: usize) i32 {
|
||||
for (1..n + 1) |i| {
|
||||
for (1..amt + 1) |a| {
|
||||
if (coins[i - 1] > @as(i32, @intCast(a))) {
|
||||
// 若超过背包容量,则不选硬币 i
|
||||
// 若超过目标金额,则不选硬币 i
|
||||
dp[a] = dp[a];
|
||||
} else {
|
||||
// 不选和选硬币 i 这两种方案的较小值
|
||||
|
||||
Reference in New Issue
Block a user