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

Largest Rectangle in Histogram

المدرّج التكراري عبارة عن صف من الأعمدة المتجاورة دون فجوات، عرض كلٍّ منها وحدة واحدة: heights[i] هو ارتفاع العمود i. يغطي المستطيل داخله مجموعة متتابعة من الأعمدة المتجاورة، ولا يمكن أن يزيد ارتفاعه على ارتفاع أقصر عمود في تلك المجموعة.

أعِد أكبر مساحة يمكن أن يكون عليها مثل هذا المستطيل.

الدالة

largestRectangleArea(heights: integer-array) → integer
heightsinteger-array
ارتفاع كل عمود، من اليسار إلى اليمين
تُرجعinteger
مساحة أكبر مستطيل يتسع داخل المدرج التكراري

القيود

  • 1 ≤ heights.length ≤ 2 × 104
  • 0 ≤ heights[i] ≤ 105
  • عرض كل عمود وحدة واحدة، لذا فإن المستطيل الممتد فوق الأعمدة من i إلى j عرضه j-i+1 وحدة.

أمثلة

المدخلات
heights = [2, 5, 6, 3, 4, 1]
المخرجات
12
الشرح
ارتفاع الأعمدة الأربعة 5 و6 و3 و4 لا يقل عن 3، لذا يمتد مستطيل بارتفاع 3 فوقها: 3 × 4 = 12. أما أطول عمودين، 5 و6، فيعطيان 5 × 2 = 10 فقط.

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

challenge icon

سؤال إضافي

افترض أن لكل قضيب عرضه الخاص، المحدد في مصفوفة ثانية. ما الذي يتغير في حل المكدس ذي المرور الواحد؟

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

الحالة 1

الحالة 2

الحالة 3

المدخلات

heights = [2, 5, 6, 3, 4, 1]

المتوقع

12