Coin Change

You are given an array coins, where each element is a coin denomination, and an integer amount.

Each coin can be used any number of times.

Return the smallest number of coins required to make exactly amount.
If it is not possible to form amount, return -1.

Examples
Input: [[1,2,5],11]
Output: 3
Hints
Related Problems

Coin Change

You are given an array `coins`, where each element is a coin denomination, and an integer `amount`.