aboutsummaryrefslogtreecommitdiff
path: root/container_most_water.py
diff options
context:
space:
mode:
authorJack Sangdahl <[email protected]>2025-10-03 21:55:54 -0600
committerJack Sangdahl <[email protected]>2025-10-03 21:55:54 -0600
commitbadbb55eba0ccf863d56ded03317f945f250850a (patch)
tree903d67e7a4eb9c9c3fd1a346af89f47b9a28dbdf /container_most_water.py
parent2480c593f614b6a93882311ddfb9bdc885f40c98 (diff)
downloadleetcode-badbb55eba0ccf863d56ded03317f945f250850a.tar.gz
leetcode-badbb55eba0ccf863d56ded03317f945f250850a.zip
11. container with most water
Diffstat (limited to 'container_most_water.py')
-rw-r--r--container_most_water.py32
1 files changed, 32 insertions, 0 deletions
diff --git a/container_most_water.py b/container_most_water.py
new file mode 100644
index 0000000..a028e5f
--- /dev/null
+++ b/container_most_water.py
@@ -0,0 +1,32 @@
+# 11. Container With Most Water
+
+"""
+you are given an integer array 'height' of length 'n'. there are 'n' vertical
+lines drawn such that two endpoints of the i'th 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.
+"""
+
+
+class Solution(object):
+ def maxArea(self, height):
+ """
+ :type height: List[int]
+ :rtype: int
+ """
+ left, right, ans = 0, len(height) - 1, 0
+ while left < right:
+ curr = min(height[left], height[right]) * (right - left)
+ ans = max(ans, curr)
+ if height[left] < height[right]:
+ left += 1
+ else:
+ right -= 1
+ return ans
+
+
+if __name__ == "__main__":
+ obj = Solution()
+ print(obj.maxArea(height=[1, 8, 6, 2, 5, 4, 8, 3, 7]))
+ print(obj.maxArea(height=[1, 1]))