#P4092. 零钱兑换

零钱兑换

题目内容

给你一个整数数组 coinscoins,表示不同面额的硬币;以及一个整数 amountamount ,表示总金额。

计算并返回可以凑成总金额所需的最少的硬币个数 。如果没有任何一种硬币组合能组成总金额,返回 1-1

你可以认为每种硬币的数量是无限的。

输入描述

第一行一个数组coinscoins 第二行一个整数amountamount

输出描述

一个整数表示可以凑成总金额所需的最少的硬币个数

样例1

输入

1 2 5
11

输出

说明

11=5+5+111 = 5 + 5 + 1

样例2

输入

2
3

输出

-1

样例3

输入

1
0

输出

提示:

  • 1<=coins.length<=121 <= coins.length <= 12
  • 1<=coins[i]<=23111 <= coins[i] <= 2^{31} - 1
  • 0<=amount<=1040 <= amount <= 10^4