LeetCode 518. Coin Change II

原题链接在这里:https://leetcode.com/problems/coin-change-2/

题目:

You are given coins of different denominations and a total amount of money. Write a function to compute the number of combinations that make up that amount. You may assume that you have infinite number of each kind of coin.

 

Example 1:

Input: amount = 5, coins = [1, 2, 5]
Output: 4
Explanation: there are four ways to make up the amount:
5=5
5=2+2+1
5=2+1+1+1
5=1+1+1+1+1

Example 2:

Input: amount = 3, coins = [2]
Output: 0
Explanation: the amount of 3 cannot be made up just with coins of 2.

Example 3:

Input: amount = 10, coins = [10] 
Output: 1

Note:

You can assume that

  • 0 <= amount <= 5000
  • 1 <= coin <= 5000
  • the number of coins is less than 500
  • the answer is guaranteed to fit into signed 32-bit integer

题解:

Let dp[i] denote up to amount i, the number of combinations.

dp[0] = 1

dp[i] += dp[i - coin]  

Time Complexity: O(amount * n). n = coins.length.

Space: O(amount).

AC Java:

复制代码
 1 class Solution {
 2     public int change(int amount, int[] coins) {
 3         if(amount < 0 || coins == null){
 4             return 0;
 5         }
 6         
 7         int [] dp  = new int[amount + 1];
 8         dp[0] = 1;
 9         
10         for(int coin : coins){
11             for(int i = 1; i <= amount; i++){
12                 if(i - coin < 0){
13                     continue;
14                 }
15                 
16                 dp[i] += dp[i - coin];
17             }
18         }
19         
20         return dp[amount];
21     }
22 }
复制代码

类似Coin ChangeNumber of Dice Rolls With Target SumNumber of Ways to Build House of Cards.

posted @   Dylan_Java_NYC  阅读(250)  评论(0编辑  收藏  举报
编辑推荐:
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
阅读排行:
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
历史上的今天:
2016-01-15 LintCode A + B Problem
点击右上角即可分享
微信分享提示