一、题目


二、思路

三、代码

package redbook3;

import java.util.Arrays;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int[] coins;
        while (in.hasNext()) {
            int n = in.nextInt();
            coins = new int[n];
            for (int i = 0; i < n; i++) {
                coins[i] = in.nextInt();
            }
            int total = in.nextInt();
            System.out.println(coinChange(coins, total));
        }
        in.close();
    }

    public static int coinChange(int[] coins, int amount) {
        int[] dp = new int[amount + 1];
        Arrays.fill(dp, amount + 1);
        dp[0] = 0;

        for (int i = 1; i <= amount; i++) {
            for (int coin : coins) {
                if (i >= coin) {
                    dp[i] = Math.min(dp[i], 1 + dp[i - coin]);
                }
            }
        }

        return dp[amount] >= amount + 1 ? -1 : dp[amount];
    }
    
}
View Code

相关文章:

  • 2021-06-08
  • 2021-12-26
  • 2021-07-20
  • 2022-12-23
  • 2022-12-23
  • 2021-07-04
  • 2022-12-23
猜你喜欢
  • 2022-01-01
  • 2021-09-07
  • 2021-06-25
  • 2021-11-18
  • 2021-12-30
  • 2022-02-12
  • 2022-02-23
相关资源
相似解决方案