关注
去力扣找了一个解答是动规优化的,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);
}
}
};
查看原帖
点赞 3
相关推荐
牛客热帖
更多
正在热议
更多
# 你觉得实习能学到东西吗 #
33640次浏览 673人参与
# 百度工作体验 #
221636次浏览 1967人参与
# 现代汽车前瞻技术研发急速编程挑战赛 #
27052次浏览 213人参与
# 秋招什么时候开投比较合适? #
21427次浏览 299人参与
# 机械人与华为的爱恨情仇 #
116661次浏览 945人参与
# 实习,不懂就问 #
44406次浏览 666人参与
# 发工资后,你做的第一件事是什么 #
67915次浏览 229人参与
# 机械人集合!你是什么工程师? #
15601次浏览 89人参与
# 如何准备秋招 #
19332次浏览 369人参与
# 找不到好工作选择GAP真的丢人吗 #
77974次浏览 938人参与
# 工作中哪个瞬间让你想离职 #
25695次浏览 177人参与
# 快手求职进展汇总 #
546769次浏览 6001人参与
# 硬件应届生薪资是否普遍偏低? #
73852次浏览 514人参与
# 你们公司几号发工资 #
20847次浏览 140人参与
# 不考虑转正,实习多久合适 #
31938次浏览 145人参与
# 多益网络求职进展汇总 #
29021次浏览 134人参与
# 软开人,秋招你打算投哪些公司呢 #
102739次浏览 958人参与
# 每个月的工资都是怎么分配的? #
26999次浏览 422人参与
# 面试中,你被问过哪些奇葩问题? #
68338次浏览 796人参与
# 元戎启行求职进展汇总 #
32535次浏览 240人参与
# 你觉得现在还能进互联网吗? #
8117次浏览 132人参与