322. Coin Change
来源:互联网 发布:网络博客行业 编辑:程序博客网 时间:2024/06/06 19:18
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.Note:You may assume that you have an infinite number of each kind of coin.
Example 1:
coins = [1, 2, 5], amount = 11return 3 (11 = 5 + 5 + 1)
Example 2:
coins = [2], amount = 3return -1.
代码:
暴力解法(超时):
class Solution {public: int coinChange(vector<int>& coins, int amount) { sort(coins.begin(), coins.end()); vector<vector<int>> answer; vector<int> sol; getCom(sol, answer, coins, amount, 0); if (answer.size() == 0) return -1; else { vector<int> min = answer[0]; for (int i = 0; i < answer.size(); i++) { if (answer[i].size() < min.size()) min = answer[i]; } return min.size(); } } void getCom(vector<int>& sol, vector<vector<int>>& res, vector<int>& coins, int amount, int start) { if (!amount) { res.push_back(sol); return; } for (int i = start; i < coins.size() && amount >= coins[i]; i++) { sol.push_back(coins[i]); getCom(sol, res, coins, amount - coins[i], i); sol.pop_back(); } }};
优化版:
class Solution {public: int coinChange(vector<int>& coins, int amount) { int Max = amount + 1; vector<int> dp(amount + 1, Max); dp[0] = 0; for (int i = 1; i <= amount; i++) { for (int j = 0; j < coins.size(); j++) { if (coins[j] <= i) { dp[i] = min(dp[i], dp[i - coins[j]] + 1); } } } return dp[amount] > amount ? -1 : dp[amount]; }};
阅读全文
0 0
- [leetcode] 322. Coin Change
- leetcode 322. Coin Change
- Leetcode 322. Coin Change
- Leetcode 322. Coin Change
- 322. Coin Change
- 322. Coin Change LeetCode
- 322. Coin Change
- 322. Coin Change
- LeetCode *** 322. Coin Change
- 322. Coin Change
- LeetCode 322. Coin Change
- 322. Coin Change
- leetcode 322. Coin Change
- 322. Coin Change
- LeetCode-322.Coin Change
- Leetcode 322. Coin Change
- 322. Coin Change
- 322. Coin Change
- 【math】7、输入一个数字,倒着输出
- 生成本地zip压缩包工具类
- UML关系明确解释
- HDFS文件导出本地合并为一个文件
- Block基本用法
- 322. Coin Change
- 责任链模式综述(基础篇)
- import和require
- 前端图片预览,上传前预览,兼容IE7、8、9、10、11,FIREFOX,CHROME
- 压缩包为什么比文件夹,传输速度快?
- 【OpenBCI】(1):Matlab实时读取数据流(labstreaminglayer)
- Vscode preview on Web Server 的一个坑
- 走向世界系列1: IPsec L2TP PPTP介绍与搭建vpn服务器
- 在浏览器中输入Google.com并且按下回车之后发生了什么?