zoukankan      html  css  js  c++  java
  • [LC] 322. Coin Change

    You are given coins of different denominations and a total amount of money amount. Write a function to compute the fewest number of coins that you need to make up that amount. If that amount of money cannot be made up by any combination of the coins, return -1.

    Example 1:

    Input: coins = [1, 2, 5], amount = 11
    Output: 3 
    Explanation: 11 = 5 + 5 + 1

    Example 2:

    Input: coins = [2], amount = 3
    Output: -1
    

    Note:
    You may assume that you have an infinite number of each kind of coin.

    class Solution {
        public int coinChange(int[] coins, int amount) {
            if (coins == null || coins.length == 0) {
               return -1;
            }
            int[] arr = new int[amount + 1];
            for (int i = 1; i <= amount; i++) {
                arr[i] = Integer.MAX_VALUE;
                for (int j = 0; j < coins.length; j++) {
                    if (i >= coins[j] && arr[i - coins[j]] != -1) {
                        // like knapbag exclude the previous amoutn of i - arr[j]
                        arr[i] = Math.min(arr[i], arr[i - coins[j]] + 1);
                    }
                }
                arr[i] = arr[i] == Integer.MAX_VALUE ? -1 : arr[i];
            }
            return arr[amount];
        }
    }
  • 相关阅读:
    SpringBoot创建定时任务
    SpringBoot 多环境配置
    SpringBoot中使用log4j日志
    SpringBoot项目结构介绍
    SpringBoot快速入门
    Zookeeper Zkclient客户端
    Zookeeper java api
    学习微信小程序及知识占及v-if与v-show差别

    1像素
  • 原文地址:https://www.cnblogs.com/xuanlu/p/12215880.html
Copyright © 2011-2022 走看看