#1896. 背包类DP(二)-课堂案例1

背包类DP(二)-课堂案例1

题目描述

《零钱兑换(一)》

给定 n 种硬币,第 i 种硬币的面值为 coins[i] ,目标金额为 m。假设每一种面额的硬币有无限个。问能够凑出目标金额的最少硬币数量。

输入格式

输入的第一行是两个正整数 n 和 m,用空格隔开,其中1≤n ≤20,表示正整数的个数,m为目标金额(1≤m ≤1000); 接下来的一行是n个正整数,用空格隔开。

输出格式

输出凑出目标金额的最少硬币数量。如果无法凑出目标金额,则输出 -1 。

样例

输入样例 1

4 23
1 2 5 10

输出样例 1

4

输入样例 2

1 3
2

输出样例 2

-1

输入样例 3

1 10
5

输出样例 3

2

输入样例 4

3 7
3 5 1

输出样例 4

3