零钱兑换:ACM 模式刷题
按标准输入读取测试数据,输出结果后可在 CodeACM 在线运行和提交。
题目描述
给你一个整数数组 coins ,表示不同面额的硬币;以及一个整数 amount ,表示总金额。
计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任何一种硬币组合能组成总金额,返回 -1 。
你可以认为每种硬币的数量是无限的。
输入格式
第一行输入 n 和 amount,第二行输入 n 个面额。
输出格式
输出最少硬币数,无法凑成时输出 −1。
数据范围
- 1 ≤ n ≤ 12
- 0 ≤ amount ≤ 10⁴
公开样例
样例 1
输入
3 11 1 2 5
输出
3
11 = 5 + 5 + 1,共使用 3 枚硬币。
样例 2
输入
1 3 2
输出
-1
无法凑成 3。
练习建议
先根据输入输出格式写出可运行程序,再用公开样例检查结果;遇到边界情况时,补充自测用例后提交。