# 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
# 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
# source: https://thita.ai/problems/container-with-most-water
class Solution:
def calculateMaxArea(self, height):
maxArea = 0
a = 0
len_array = len(height)
b = len_array-1
while a != b:
heig = min(height[a], height[b])
width = abs(a-b)
area = heig*width
if area > maxArea:
maxArea = area
if height[a]<height[b]:
a+=1
else:
b-=1
return maxArea
def main():
print("Hello world!")
solution = Solution()
test1 = [1,8,6,2,5,4,8,3,7]
val = solution.calculateMaxArea(test1)
print(f"val={val}")
assert(val==49)
test2 = [1,1]
val = solution.calculateMaxArea(test2)
print(f"val={val}")
assert(val==1)
test3 = [1,2,8,7,33,2,64,1,8,4]
val = solution.calculateMaxArea(test3)
print(f"val={val}")
assert(val==66)
print("Goob-bye cruel world!")
if __name__ == "__main__":
main()