Coin Change
来源:互联网 发布:linux ssh远程工具 编辑:程序博客网 时间:2024/06/14 18:39
原题地址:点我传送
本来想用之前那个构造和的方法做,但是那个方法还保留了构造的过程,会超时。就只能退而用dp做。(其实是一开始没想到好吗)此时用ans[i]数组表示需要的amount为i时的解。显然0时解为0.后面对于每个i,对每个硬币,如果硬币值小于所需值,则可以拿。拿与不拿两种情况取小即可。
C++:class Solution {public: int coinChange(vector<int>& coins, int amount) { int* ans = new int [amount + 1]; ans[0] = 0; for(int i = 1; i < amount + 1; i++) { ans[i] = amount + 1; } for(int i = 1; i < amount + 1; i++) { for(int j=0 ;j<coins.size(); j++) { if(coins[j] <= i) { ans[i] = ans[i] < (ans[i-coins[j]] + 1) ? ans[i] : (ans[i-coins[j]] + 1); } } } return ans[amount] == amount + 1 ? -1 : ans[amount]; }};
阅读全文
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
- 使用nsenter和容器交互
- Linux的SOCKET编程详解
- 数组C语言实现
- AngularJS内置指令
- cookie、session和token那些事
- Coin Change
- AlphaGo功成身退了,围棋还将继续
- 【详细资料】NCS8803 HDMI-to-eDP w/ Scaler规格书
- 【Shader】给 Shader 添加遮罩
- 65、SSM框架使用笔记
- 检查PHP脚本的执行效率(xdebug)
- iOS ARC环境下dealloc的使用
- Androd TextView 点击变化效果
- 【Linux网络编程】基于TCP的多线程(pthread)版本最简陋的HTTP服务器