You are given an integer array coins representing coin denominations and an integer amount representing a total amount of money.
Return the fewest number of coins needed to make up that amount, or -1 if it cannot be done.
Examples
Input: coins = [1,2,5], amount = 11 Output: 3
Input: coins = [2], amount = 3 Output: -1
Constraints
- 1 <= coins.length <= 12
- 1 <= coins[i] <= 2^31 - 1
- 0 <= amount <= 10,000