【LeetCode-322】Coin Change
来源:互联网 发布:软件合作开发合同范本 编辑:程序博客网 时间:2024/05/22 06:48
原题:
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.
题目大意:
给一个硬币面值数组,给一个整数值amount,问最少需要多少个硬币能组成这个值,假设硬币个数无限。
思路:
典型DP吧应该是,dp[i]=min(dp[i],dp[i-coins[j]]+1),差不多这个意思,可能我的想法比较简单算法复杂度会高,嘛不过至少AC了_(:з」∠)_。
代码:
int coinChange(int* coins, int coinsSize, int amount) { int dp[amount+1]; dp[0]=0; for (int i=1;i<=amount;i++) { dp[i]=INT_MAX-1; } for (int i=0;i<coinsSize;i++) if (coins[i]<=amount) dp[coins[i]]=1; for (int i=1;i<=amount;i++) for (int j=0;j<coinsSize;j++) if (i-coins[j]>0) { if (dp[i]>dp[i-coins[j]]+1) dp[i] = dp[i-coins[j]]+1; } if (dp[amount]==INT_MAX-1) return -1; return dp[amount];}
0 0
- [LeetCode 322] Coin Change
- leetcode 322 Coin Change
- 【LeetCode-322】Coin Change
- 【LeetCode-322】Coin Change
- (LeetCode 322) Coin Change
- 322 LeetCode Coin Change
- LeetCode 322 Coin Change
- Leetcode (322) Coin Change
- Leetcode 322, Coin Change
- LeetCode 322 Coin Change
- LeetCode 322 Coin Change
- LeetCode.322 Coin Change
- [Leetcode] #322 Coin Change (DP)
- LeetCode 322 Coin Change (完全背包)
- leetcode Coin Change
- Leetcode: Coin Change
- LeetCode Coin Change
- [leetcode] 322. Coin Change
- Java高级之1.5之后atomic包
- Android快速毛玻璃虚化效果实现
- FZU 1062 洗牌问题
- js跨域解决方案
- OpenNLP进行中文命名实体识别(上:预处理及训练模型)
- 【LeetCode-322】Coin Change
- C++ 指针(任何一个指针本身的类型都是unsigned long int型)
- PHP安全过滤函数
- autolayout详解 转发
- C、C++运算符优先级列表
- 关于视频方向的若干问题
- Android移动应用开发中常见的经验技巧总结
- 实现图片毛玻璃特效
- Redis实现分布式环境下的分布式锁机制