Menu
CoddyTech

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.
challenge icon

سؤال إضافي

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

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

اختبار #1

اختبار #2

اختبار #3

وسيط

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

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

0