From f28be89eb34d83b7497b10d9da664f5408c96909 Mon Sep 17 00:00:00 2001 From: Sangeeth Sudheer Date: Tue, 5 Apr 2022 06:20:21 +0530 Subject: [PATCH] feat(11-container-with-most-water): add py3 solution --- 0011_container-with-most-water/README.md | 28 +++++++++++++++++++ .../python3/solution.py | 17 +++++++++++ 2 files changed, 45 insertions(+) create mode 100644 0011_container-with-most-water/README.md create mode 100644 0011_container-with-most-water/python3/solution.py diff --git a/0011_container-with-most-water/README.md b/0011_container-with-most-water/README.md new file mode 100644 index 0000000..19460e2 --- /dev/null +++ b/0011_container-with-most-water/README.md @@ -0,0 +1,28 @@ +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:** + +![](https://s3-lc-upload.s3.amazonaws.com/uploads/2018/07/17/question_11.jpg) + + 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 + + +**Constraints:** + +* `n == height.length` +* `2 <= n <= 105` +* `0 <= height[i] <= 104` \ No newline at end of file diff --git a/0011_container-with-most-water/python3/solution.py b/0011_container-with-most-water/python3/solution.py new file mode 100644 index 0000000..07407a6 --- /dev/null +++ b/0011_container-with-most-water/python3/solution.py @@ -0,0 +1,17 @@ +class Solution: + def maxArea(self, height: List[int]) -> int: + left = 0 + right = len(height) - 1 + + max_area = float("-inf") + while left < right: + if height[left] <= height[right]: + area = height[left] * (right - left) + max_area = max(max_area, area) + left += 1 + else: + area = height[right] * (right - left) + max_area = max(max_area, area) + right -= 1 + + return max_area