Container With Most Water
You are given an integer array height of length n. There are n vertical lines drawn such that the two endpoints of the ith line are (i, 0) and (i, height[i]).
Find two lines that together with the x-axis form a container, such that the container contains the most water.
Return the maximum amount of water a container can store.
Notice that you may not slant the container.
Example 1:
Input: height = [1,8,6,2,5,4,8,3,7]
Output: 49
Explanation: The above vertical lines are represented by array [1,8,6,2,5,4,8,3,7].
In this case, the max area of water the container can contain is 49 (between index 1 and 8, min(8,7) * (8-1) = 7 * 7 = 49).
Example 2:
Input: height = [1,1]
Output: 1
Examples
Example 1
Input: height = [1,8,6,2,5,4,8,3,7]
Output: 49
Explanation: Using lines at index 1 (height 8) and index 8 (height 7): area = min(8, 7) * (8 - 1) = 7 * 7 = 49.
Example 2
Input: height = [1,1]
Output: 1
Explanation: Only two lines available. Area = min(1, 1) * (1 - 0) = 1.
Constraints
- -n == height.length
- -2 <= n <= 10^5
- -0 <= height[i] <= 10^4
Optimal Complexity
Time
O(n)
Space
O(1)
Practice this problem with an AI interviewer
TechInView conducts a full voice mock interview — the AI asks clarifying questions, evaluates your approach, watches you code, and scores you on 5 dimensions. Just like a real FAANG interview.
Start a free interview