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

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، بينما يسع الزوج الخارجي 3 × 7 = 21.

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

challenge icon

سؤال إضافي

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

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

الحالة 1

الحالة 2

المدخلات

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

المتوقع

36