Menu
CoddyTech

Burst Balloons

נתונה שורה של בלונים כמערך nums, כאשר nums[i] הוא המספר שעל בלון i. עליך לפוצץ את כולם, אחד בכל פעם, בכל סדר שתבחר. פיצוץ בלון מזכה ב-left × nums[i] × right מטבעות, כאשר left ו-right הם המספרים שעל השכנים הנוכחיים שלו — הבלונים הקרובים ביותר בכל צד שעדיין נמצאים בשורה. אם אין שכן, ערכו נחשב ל-1. אחרי פיצוץ, שני השכנים שלו הופכים לסמוכים זה לזה. החזר את מספר המטבעות המרבי שתוכל לאסוף.

פונקציה

maxCoins(nums: integer-array) → integer
numsinteger-array
המספרים שעל הבלונים, משמאל לימין
מחזירהinteger
המספר המרבי של מטבעות שאפשר לאסוף על ידי פיצוץ כל הבלונים

אילוצים

  • 1 ≤ nums.length ≤ 300
  • 0 ≤ nums[i] ≤ 100
  • התשובה קטנה מ־3 × 108, ולכן היא נכנסת למספר שלם עם סימן בן 32 סיביות.

דוגמאות

קלט
nums = [2, 4, 3]
פלט
33
הסבר
הכפל את ה־4 ב־2 × 4 × 3 = 24. ה־2, שעכשיו נמצא ליד ה־3, מקבל 1 × 2 × 3 = 6, וה־3 מקבל 3: בסך הכול 33.
challenge icon

שאלת המשך

האם תוכל גם להחזיר סדר מתפוצץ אחד שמרוויח הכי הרבה מטבעות?

איפוס הקוד
def maxCoins(nums):
    # כתבו כאן את הקוד

בדיקה #1

בדיקה #2

בדיקה #3

ארגומנט

nums = [2, 4, 3]

הפלט הצפוי

33