You are given an integer array coins representing coins of different denominations and an integer amount representing a total amount of money. Return the fewest number of coins needed to make up that amount. If the amount cannot be made up by any combination of the coins, return -1. Assume an infinite number of each type of coin.
Click Run to execute sample tests.