Menu
CoddyTech
flag Ar iconالعربيةdown icon

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
الشرح
فجّر الأعداد الأربعة الأولى لتحصل على 2 × 4 × 3 = 24 قطعة نقدية. أصبح العددان 2 و3 متجاورين الآن، لذا فإن تفجير العدد 2 يمنحك 1 × 2 × 3 = 6، والعدد 3، بعد أن أصبح وحيدًا، يمنحك 1 × 3 × 1 = 3. يصبح المجموع 33، ولا يوجد ترتيب آخر يحقق نتيجة أفضل: فتفجير العدد الصغير 2 أولًا يحدّ مكسبك عند 24.

lock icon+15 اختبارات مخفية عند الإرسال

challenge icon

سؤال إضافي

هل يمكنك أيضًا إرجاع ترتيب واحد متفجر يربح أكبر عدد من العملات؟

إعادة ضبط الشيفرة
def maxCoins(nums):
    # اكتب الكود هنا
حالات الاختبار

الحالة 1

الحالة 2

الحالة 3

المدخلات

nums = [2, 4, 3]

المتوقع

33