Given coin denominations and a target amount, find the minimum number of coins needed to make that amount. Return if impossible.
With coins = [1,2,5] and amount = 11:
- : coins.
- : coins.
- Minimum: .
With coins = [2] and amount = 3:
- Can't make with only -coins.
- Return .
You can use each coin denomination unlimited times.
Constraints: coins.length . amount .