11. Container With Most Water

LONGNEW·2023년 7월 6일
0

CP

목록 보기
115/155

https://leetcode.com/problems/container-with-most-water/description/

input :

  • height

output :

  • 2개의 line을 가지고 담을 수 있는 최대한의 물의 양을 출력하시오.

조건 :

  • 물은 기울여서 담을 수 없다.

Solution explain : Solution1

idea

주의

  • 가져올 수 있는 범위의 최댓값을 지정하게 된다면 반례가 생길 수 있다.
  • 주목해야 하는 것은 현재의 원소 값이다.
from typing import List

class Solution:
    def maxArea(self, height: List[int]) -> int:
        low, high = 0, len(height) - 1
        ret = 0

        while low < high:
            val_l, val_h = height[low], height[high]
            val = min(val_l, val_h)
            ret = max(ret, (high - low) * val)

            if val_l > val_h:
                high -= 1
            else:
                low += 1

        return ret

#
# s = Solution()
# print(s.maxArea([1,3,2,5,25,24,5]))
# print(s.maxArea([1,8,100,2,100,4,8,3,7]))
# print(s.maxArea([1,8,6,2,5,4,8,3,7]))
# print(s.maxArea([1,1]))
# print(s.maxArea([1,1, 1,5,5,1,1]))

0개의 댓글