322. Coin Change
来源:互联网 发布:网络实施方案 编辑:程序博客网 时间:2024/05/22 11:48
先贴个自己想的经过递归的方法,但依旧超时,大概能比对到30多个的时候超时
下面再贴个dp,
public class Solution { public int coinChange(int[] coins, int amount) { int[]s = coins; Arrays.sort(s); int o=coinMin(s,0,amount,0,s.length-1); if(o==99999999){ return -1; }else{ return o; } } private int coinMin(int[] coins,int number,int amount,int curMoney,int j){ int min = 99999999; int cha = amount - curMoney; if(curMoney == amount){return number;} else if(curMoney > amount) return 99999999; else{ for(int i=j;i>=0;i--){ if(coins[i]>cha)continue; min = Math.min(coinMin(coins,number+1,amount,curMoney+coins[i],i),min); } return min; } }}
dp解法
public int coinChange(int[] coins, int amount) { if(amount==0) return 0; int[] dp = new int [amount+1]; dp[0]=0; // 没有硬币也是0 for(int i=1;i<=amount; i++) dp[i]= Integer.MAX_VALUE; for(int i=0; i<=amount; i++){ for(int coin: coins){ if(i+coin <=amount){ if(dp[i]==Integer.MAX_VALUE){ dp[i+coin] = dp[i+coin]; }else{ dp[i+coin] = Math.min(dp[i+coin], dp[i]+1); } } } } if(dp[amount] >= Integer.MAX_VALUE) return -1; return 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
- android:drawableXXX图片和文字的距离控制
- 查看UserAgent的方法
- Hibernate
- android 自定义表盘控件
- webView与navigationController公用返回键
- 322. Coin Change
- sql 的update中使用case when
- xcode-select: error: tool 'xcodebuild' requires Xcode错误解决方法
- 【HDU3944 】DP?【LUCAS定理+阶乘预处理】 【杨辉三角中的点(第n行m列),问你从(0,0)点走到该点经过的点最少的权值和(只能向下走或斜着走)。同时对素数p取余】
- python初始化二维数组
- Spring
- web前端-CSS 图像拼合技术 -028
- as 项目作为lib导入
- 电感器的正确测量电感同BuH的关系