和上一题差不多,可以说几乎完全没有区别。
不过就是把我上一题想的“字典”改成了零钱。
写的时候遇到一个小问题,就是题目给的零钱不一定是正序排序的,所以循环条件要变一下,改成遍历所有硬币。
class Solution {
public:int coinChange(vector<int>& coins, int amount) {vector<int> change(amount+1,amount+1);change[0]=0;for(int i=1;i<=amount;i++){for(int j=0;j<coins.size();j++){if(i>=coins[j]) change[i]=min(change[i],change[i-coins[j]]+1);}}return change[amount]>amount?-1:change[amount];}
};