[Leetcode] 11. Container With Most Water

Seongjun Lee·2022년 2월 19일
0

[Leetcode] - Problem

목록 보기
11/43
post-thumbnail

Problem

문제 링크

문제 도움

위 그림과 같이 두 막대를 기준으로 물을 최대로 채웠을때 가장 너비가 큰 값을 찾아라.

Solution

  1. 왼쪽 인덱스와 오른쪽 인덱스를 이용해서 두 값중 작은 높이를 가지고있는 값을 높이로 잡는다
  2. 물을 채운 너비의 최고값을 저장한다.
  3. 작은 사이즈의 높이를 가지고있는 인덱스를 이동한다. 1~2번 행동을 반복한다.

JS CODE

/**
 * @param {number[]} heights
 * @return {number}
 */
var maxArea = function(heights) {
  let max = 0, left = 0, right = heights.length-1

  while (left < right) {
    const h = Math.min(heights[left], heights[right])
    const w = right - left

    heights[left] < heights[right] ? left++ : right--
    max = Math.max(max, h * w)
  }

  return max
}
profile
Hi there 👋

0개의 댓글