Menu
CoddyTech

Container With Most Water

لديك قائمة height من الأعداد الصحيحة غير السالبة. يمثّل الخط i جدارًا رأسيًا ارتفاعه height[i] يقف عند الموضع i. يشكّل أي خطّين حاويةً مع الأرض، ويمكنها احتواء كمية من الماء تساوي ارتفاع الخط الأقصر مضروبًا في المسافة بين الخطين. لا تعيق الخطوط الأخرى ذلك. أعد أكبر كمية من الماء يمكن لزوج واحد من الخطوط احتواؤها.

الدالة

maxArea(height: integer-array) → integer
heightinteger-array
ارتفاعات الخطوط عند المواضع 0 و1 و2 وما إلى ذلك
تُرجعinteger
أكبر كمية من الماء يمكن أن يتسع لها سطران

القيود

  • 2 ≤ height.length ≤ 104
  • 0 ≤ height[i] ≤ 104
  • الإجابة لا تتجاوز 108، لذا يمكن تمثيلها بعدد صحيح ذي 32 بتًا.

أمثلة

المدخلات
height = [3, 7, 2, 5, 4, 7, 3, 6]
المخرجات
36
الشرح
يقع الخطان عند الموضعين 1 و7، وارتفاعاهما 7 و6، على بُعد 6 وحدات ويحتويان على 6 × 6 = 36. أما الخطان الأطول، وهما الخطان بارتفاع 7 عند الموضعين 1 و5، فلا يحتويان إلا على 7 × 4 = 28.
challenge icon

سؤال إضافي

هنا يتم تجاهل الخطوط الواقعة بين الخطين لديك. لو كان كل خط عبارة عن حاجز صلب، فكمية الماء التي ستتجمع بينها جميعًا؟ هل يمكنك حساب ذلك أيضًا في O(n)؟

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

اختبار #1

اختبار #2

وسيط

height = [3, 7, 2, 5, 4, 7, 3, 6]

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

36