Menu
CoddyTech

Coin Change

בינוניתכנון דינמיpython iconjava iconcpp iconc iconjs icon+10

ניתנת לך רשימה coins של ערכי מטבעות שונים ויעד amount. אפשר להשתמש בכל ערך של מטבע כמה פעמים שרוצים. יש להחזיר את המספר הקטן ביותר של מטבעות שסכום ערכיהם הוא בדיוק amount, או -1 אם אין שילוב של מטבעות שמגיע אליו. סכום של 0 דורש 0 מטבעות.

פונקציה

coinChange(coins: integer-array, amount: integer) → integer
coinsinteger-array
ערכי המטבע השונים, שכל אחד מהם ניתן לשימוש בכל מספר של פעמים
amountinteger
הסכום הכולל שיש לשלם בדיוק
מחזירהinteger
מספר המטבעות הקטן ביותר הדרוש, או ‎-1 אם אי אפשר להרכיב את הסכום

אילוצים

  • 1 ≤ coins.length ≤ 12
  • 1 ≤ coins[i] ≤ 104
  • 0 ≤ amount ≤ 104
  • כל ערכי המטבעות שונים.

דוגמאות

קלט
coins = [2, 5, 10]amount = 27
פלט
4
הסבר
10 + 10 + 5 + 2 נותנים 27 באמצעות ארבעה מטבעות. שלושה מטבעות לא מספיקים: 27 הוא אי־זוגי, ולכן צריך בדיוק מטבע אחד של 5, ושני האחרים מסתכמים לכל היותר ב־20, פחות מ־22.
challenge icon

שאלת המשך

האם תוכל לספור כמה צירופים שונים של מטבעות מסתכמים ב־amount, במקום למצוא את מספר המטבעות הקטן ביותר?

איפוס הקוד
def coinChange(coins, amount):
    # כתבו כאן קוד

בדיקה #1

בדיקה #2

בדיקה #3

ארגומנטים

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

הפלט הצפוי

4