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, והזוג החיצוני מכיל 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