Menu
CoddyTech

Coin Change

Você recebe uma lista coins com diferentes valores de moedas e um valor-alvo amount. Você pode usar cada valor de moeda quantas vezes quiser. Retorne o menor número de moedas cujos valores somem exatamente amount, ou -1 se nenhuma combinação de moedas alcançar esse valor. Um valor de 0 precisa de 0 moedas.

Função

coinChange(coins: integer-array, amount: integer) → integer
coinsinteger-array
os diferentes valores das moedas, cada um podendo ser usado quantas vezes quiser
amountinteger
o total a pagar exatamente
Retornainteger
a menor quantidade de moedas necessária, ou -1 quando não for possível formar o valor

Restrições

  • 1 ≤ coins.length ≤ 12
  • 1 ≤ coins[i] ≤ 104
  • 0 ≤ amount ≤ 104
  • Todos os valores das moedas são diferentes.

Exemplos

Entrada
coins = [2, 5, 10]amount = 27
Saída
4
Explicação
10 + 10 + 5 + 2 totalizam 27 com quatro moedas. Três moedas não dão certo: 27 é ímpar, então precisam de exatamente uma moeda de 5, e as outras duas somam no máximo 20, menos que 22.
challenge icon

Para ir além

Você consegue contar quantas combinações diferentes de moedas somam amount, em vez de encontrar o menor número de moedas?

Redefinir código
def coinChange(coins, amount):
    # Escreva o código aqui

Teste #1

Teste #2

Teste #3

Argumentos

coins = [2, 5, 10]
amount = 27

Saída Esperada

4