Leetcode - Medium - 11. Container With Most Water - Javascript

2022年1月18日 星期二

Leetcode - Medium - 11. Container With Most Water - Javascript


11. Container With Most Water

Medium

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 of 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





解題方向:


程式碼 :
/**
 * @param {number[]} height
 * @return {number}
 */
var maxArea = function(height) {
  const heightLen = height.length;
  let leftIndex = 0;
  let rightIndex = heightLen - 1;

  let maxCount = 0;

  while (leftIndex !== rightIndex) {
    const dist = rightIndex - leftIndex;
    let leftLine = height[leftIndex];
    let rightLine = height[rightIndex];
    
    let minHeight;
    if (leftLine < rightLine) {
        minHeight = leftLine;
        leftIndex++;
    } else {
        minHeight = rightLine;
        rightIndex--
    }
      
    const _curentNum  = minHeight * dist;

    if (maxCount < _curentNum) {
      maxCount = _curentNum;
    }
  }

  return maxCount;
};



執行成果:



0 意見 :

張貼留言