Menu
CoddyTech

Minimum Cost of Ropes

لديك بعض الحبال، ويمثل ropes[i] طول الحبل i. يمكنك وصل أي حبلين معًا لتكوين حبل واحد طوله يساوي مجموع طولي الحبلين، وتكون تكلفة الوصل مساوية للمجموع نفسه. واصل الوصل حتى يتبقى حبل واحد.

اكتب دالة باسم minCostRopes تُرجع أقل تكلفة إجمالية لوصل جميع الحبال في حبل واحد، أو 0 إذا كان لديك حبل واحد فقط منذ البداية.

الدالة

minCostRopes(ropes: integer-array) → integer
ropesinteger-array
طول كل حبل
تُرجعinteger
أقل تكلفة إجمالية لضمّ جميع الحبال في حبل واحد

القيود

  • 1 ≤ ropes.length ≤ 104
  • 1 ≤ ropes[i] ≤ 100
  • الإجابة تقع ضمن نطاق عدد صحيح موقّع من 32 بت.

أمثلة

المدخلات
ropes = [5, 2, 8, 3]
المخرجات
33
الشرح
اجمع 2 و3 لتحصل على 5، ثم اجمع الحبلين اللذين طول كل منهما 5 لتحصل على 10، ثم 8 و10 لتحصل على 18. المجموع هو 5 + 10 + 18 = 33.
challenge icon

سؤال إضافي

افترض أن عملية وصل قد تربط ما يصل إلى ثلاثة حبال، وتكون تكلفتها مساوية لمجموع أطوالها. كيف تتغير القاعدة الجشعة عندما لا يكون عدد الحبال قابلًا للقسمة بالتساوي؟

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

اختبار #1

اختبار #2

اختبار #3

وسيط

ropes = [5, 2, 8, 3]

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

33