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

Last Stone Weight

سهلالكومةpython iconjava iconcpp iconc iconjs icon+10

لديك كومة من الحجارة، ويمثّل stones[i] وزن الحجر i. في كل جولة، خذ أثقل حجرين وحطّمهما معًا. إذا كان وزنهما متساويًا، تحطّم كلاهما. وإلا، يتحطّم الحجر الأخف ويصبح وزن الحجر الأثقل هو الفرق بين الوزنين.

اكتب دالة باسم lastStoneWeight تلعب الجولات حتى يتبقى حجر واحد على الأكثر، وتُعيد وزن ذلك الحجر، أو 0 إذا لم يتبقَّ أي حجر.

الدالة

lastStoneWeight(stones: integer-array) → integer
stonesinteger-array
أوزان الأحجار في الكومة
تُرجعinteger
وزن الحجر الأخير، أو 0 إذا لم يتبقَّ أيٌّ منها

القيود

  • 1 ≤ stones.length ≤ 104
  • 1 ≤ stones[i] ≤ 1000

أمثلة

المدخلات
stones = [3, 9, 4, 6, 2]
المخرجات
0
الشرح
يترك 9 و6 حجرًا وزنه 3، ثم يترك 4 و3 حجرًا وزنه 1، ثم يترك 3 و2 حجرًا آخر وزنه 1. يتحطم الحجران اللذان يزن كل منهما 1 أحدهما بالآخر، فلا يتبقى شيء وتكون الإجابة 0.

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

challenge icon

سؤال إضافي

الأوزان لا تتجاوز 1000. هل يمكنك الاستفادة من هذا الحد لإنجاز ذلك في زمن O(n + W)، حيث إن W هو أكبر وزن، من دون كومة؟

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

الحالة 1

الحالة 2

الحالة 3

المدخلات

stones = [3, 9, 4, 6, 2]

المتوقع

0