Container With Most Water 2 Pointer Approach
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 (blue section) the container can contain is 49.
Example 2:
Input: height = [1,1]
Output: 1
🧠2. Two Pointer Approach (Simple Idea)
-
Start with two pointers:
-
Left pointer at start (
i = 0
) -
Right pointer at end (
j = height.length - 1
)
-
-
While
i < j
:-
Calculate the current water area.
-
Keep track of the maximum area found.
-
Move the pointer with shorter height, because:
-
Only moving the smaller line may increase the height (and improve area).
-
-
Comments
Post a Comment