코딩테스트
[leetcode] 11. Container With Most Water : python
나가니
2023. 1. 17. 21:41
길이 n의 정수 배열이 제공됩니다.
x축과 함께 용기를 구성하는 두 개의 선을 찾아 용기에 물이 가장 많이 포함되도록 합니다.
용기에 저장할 수 있는 최대 물 양을 반환합니다.
용기를 기울여서는 안 됩니다.
- n == height.length
- 2 <= n <= 105
- 0 <= height[i] <= 104
Input: height = [1,8,6,2,5,4,8,3,7]
Output: 49
Greedy
class Solution:
def maxArea(self, height: List[int]) -> int:
left, right = 0, len(height)-1
area=0
while left < right:
width = right-left
min_h = min(height[left],height[right])
area = max(area,width*min_h)
if height[left]>height[right]:
right-=1
while height[right] < min_h:
right-=1
else:
left+=1
while height[left] < min_h:
left+=1
return area