Menu
CoddyTech

Coin Change

Kamu mendapatkan sebuah list coins berisi nilai koin yang berbeda dan sebuah target amount. Kamu boleh menggunakan setiap nilai koin sebanyak yang kamu mau. Kembalikan jumlah koin paling sedikit yang nilainya jika dijumlahkan tepat sama dengan amount, atau -1 jika tidak ada kombinasi koin yang bisa mencapai jumlah tersebut. Jumlah 0 membutuhkan 0 koin.

Fungsi

coinChange(coins: integer-array, amount: integer) → integer
coinsinteger-array
berbagai nilai koin, masing-masing dapat digunakan berapa kali pun
amountinteger
total yang harus dibayar dengan tepat
Mengembalikaninteger
jumlah koin paling sedikit yang dibutuhkan, atau -1 jika jumlah tersebut tidak dapat dibuat

Batasan

  • 1 ≤ coins.length ≤ 12
  • 1 ≤ coins[i] ≤ 104
  • 0 ≤ amount ≤ 104
  • Semua nilai koin berbeda.

Contoh

Input
coins = [2, 5, 10]amount = 27
Output
4
Penjelasan
10 + 10 + 5 + 2 menghasilkan 27 dengan empat koin. Tiga koin tidak cukup: 27 adalah bilangan ganjil, jadi kamu membutuhkan tepat satu koin 5, dan dua koin lainnya hanya berjumlah paling banyak 20, kurang dari 22.
challenge icon

Pertanyaan lanjutan

Bisakah kamu menghitung berapa banyak kombinasi koin berbeda yang jumlahnya mencapai amount, alih-alih mencari jumlah koin paling sedikit?

Reset kode
def coinChange(coins, amount):
    # Tulis kodemu di sini

Tes #1

Tes #2

Tes #3

Argumen

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

Output yang diharapkan

4