[leetcode] 11. Container With Most Water

Youn·2021년 7월 27일
0

Algorithm

목록 보기
4/37

문제 설명

링크
Given n non-negative integers a1, a2, ..., an , where each represents a point at coordinate (i, ai). n vertical lines are drawn such that the two endpoints of the line i is at (i, ai) and (i, 0). Find two lines, which, together with the x-axis forms a container, such that the container contains the most water.

접근 - Two pointers

  • 넓이를 최대로
  • 높이를 최대로
  • 넓이를 줄여나가면서 높이가 더 커질 가능성 고려

코드

    def maxArea(self, height: [int]) -> int:
        l, r = 0, len(height) - 1
        ans = float('-inf')
        while l < r:
            ans = max(ans, (r - l) * min(height[r], height[l]))
            if height[l] < height[r]:
                l += 1
            else:
                r -= 1
        return ans
profile
youn

0개의 댓글