Menu
CoddyTech

Rod Cutting Problem

لديك قضيب طوله n، حيث n = prices.length. تُباع قطعة طولها k مقابل prices[k-1]. يمكنك تقطيع القضيب إلى قطع ذات أطوال صحيحة كما تشاء، أو بيعه قطعة واحدة. أرجِع أكبر مبلغ يمكنك كسبه من بيع القضيب كله.

الدالة

cutRod(prices: integer-array) → integer
pricesinteger-array
‏<code>prices[k-1]</code> هو سعر قطعة طولها <code>k</code>؛ طول القضيب هو <code>prices.length</code>
تُرجعinteger
أكبر مبلغ من المال يمكن للقضيب بأكمله أن يجنيه

القيود

  • 1 ≤ prices.length ≤ 1000
  • 1 ≤ prices[i] ≤ 105

أمثلة

المدخلات
prices = [2, 5, 7, 8]
المخرجات
10
الشرح
يُباع قطعتان طول كل منهما 2 مقابل 5 + 5 = 10. يدرّ بيع القضيب كاملًا 8، بينما تدرّ قطعة بطول 1 وأخرى بطول 3 مبلغ 2 + 7 = 9.
challenge icon

سؤال إضافي

ماذا لو كان بإمكانك قطع القضيب m مرات كحد أقصى؟ ما الذي تحتاج كل خانة في الجدول إلى معرفته عندئذ؟

إعادة ضبط الشيفرة
def cutRod(prices):
    # اكتب الكود هنا

اختبار #1

اختبار #2

اختبار #3

وسيط

prices = [2, 5, 7, 8]

الإخراج المتوقع

10