Coin Change
来源:互联网 发布:苏菲淘宝旗舰店 编辑:程序博客网 时间:2024/06/07 11:10
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:
coins = [1, 2, 5]
, amount = 11
return 3
(11 = 5 + 5 + 1)
Example 2:
coins = [2]
, amount = 3
return -1
.
Note:
You may assume that you have an infinite number of each kind of coin.
解决方案:
利用动态规划来做会比较简单,设am[i] 在给定面额下,amount=I时的最小硬币个数,
令am[0]=0,am[i]=min{ am[i - coin[ j ] ] , 正无穷}。
最后当am[ amount ]=正无穷时,说明不能组合出给定的amount,return-1;
否则,return am[ amount ].
代码如下:
class Solution {public: int coinChange(vector<int>& coins, int amount) { int *am=new int[amount+1]; int len=coins.size(); int i,j,temp,result; am[0]=0; for(i=1;i<=amount;i++){ temp=INT_MAX; for(j=0;j<len;j++){ if((i-coins[j])>=0){ temp=min(temp, am[i-coins[j]]); } } am[i]=(temp==INT_MAX)?INT_MAX:(temp+1); } if(am[amount]==INT_MAX) result=-1; else result=am[amount]; delete []am; return result; } int min(int x, int y){ return x<=y?x:y; } /* int max(int x,int y){ return x>=y?x:y; } */};
阅读全文
0 0
- Coin Change
- Coin Change
- Coin change
- Coin Change
- Coin change
- Coin Change
- Coin Change
- Coin Change
- Coin Change
- Coin Change
- Coin Change
- Coin Change
- Coin Change
- Coin Change
- Coin Change
- Coin Change
- coin change
- Coin Change
- html的Json与Java的Json
- JAVA图形化界面实现文件的“读取和写入”
- 您的 mac 无法与 apple watch 通信。
- Android开发中Mock(搭建本地服务器)
- 堆 续9
- Coin Change
- Nginx+Tomcat搭建高性能负载均衡集群
- 图形学相关网站记录
- UVa 12034
- iOS UIImage类 imageNamed方法使用不当
- Java网络爬虫(九)--海量URL去重之布隆过滤器
- C++中虚函数
- “师创杯”SDUT-ACM校赛正式赛-C~K玩游戏
- 模拟,bfs(HDU 5336,XYZ and Drops)