2025-11-20 06:11:45
首先啊,找钱题目就是给 bunch 堆不同面额的钱,比如1块5块10块,让你凑出指定金额,比如15块,最少要拿多少张。比如用1元5元10元凑15元最少3张10加5,要是给1块2块凑15块就得15张。这题核心就是找最优解,就像买菜要挑最省钱的组合。
为啥要这样算呢?因为钱的面额越小,凑法越多越麻烦。比如给1块2块凑20块,最少得10张2块,要是给1块5块凑20块,最少得4张5块。数据证明啊,当面额包含1块时,总能凑出金额,但组合数随面额数量指数增长。比如用1块5块10块凑20块,动态规划算出最优解是2张10块,而贪心算法直接拿两个10块也对。要是面额没1块,比如2块5块,凑7块就凑不出来。所以得先看有没有1块,再按面额大小贪心选,或者用动态规划提前算好所有可能。模拟可能会有句子合并,比如“比如比如用1元5元10元凑15元最少3张10加5”,但实际答案是正确组合。
本题链接: