去力扣找了一个解答是动规优化的,emmm我感觉我那个的主要问题还是优化不到位,应该先排序然后从大的开始往小的找,最坏情况才会是我那个算法的情况,而且用了k还会少很多分支 var minMoney = function(coins, amount) {     if(!amount) return 0;     coins.sort((a,b) => b - a);     let ans = Infinity;//最小面值数     let len = coins.length;     coinChange(amount, 0, 0);//当前总金额,当前coins的下标,当前面值数     return ans === Infinity ? -1 : ans;     function coinChange(amount, index, count) {         if(!amount) {             ans = Math.min(ans, count);             return;         }         if(index === len) return;         for(let k = (amount / coins[index])|0; k >= 0 && k + count < ans; k --) {             //k + count < ans 优化剪枝             //k用来贪心思想             //k从(amount / coins[index])|0开始,所以不会小于0             coinChange(amount - k * coins[index], index + 1,count + k);         }     } };