LeetCode 11.水を最も多く入れる容器JavaScript
1576 ワード
LeetCode 11.水を最も多く入れる容器JavaScript
説明:コンテナを傾けてはいけません.
図中の垂直線は入力配列を表します.
入力:[1,8,6,2,5,4,8,3,7]出力:49
答えの参考:
n
個の非負の整数a1,a2,...,an
が与えられ、各数は座標の1つの点(i, ai)
を表す.座標内画n
本の垂直線において、垂直線i
の2つのエンドポイントはそれぞれ(i, ai)
および(i, 0)
である.x
軸と共に構成された容器が最も多くの水を収容できるように、その中の2つの線を探し出す.説明:コンテナを傾けてはいけません.
n
の値は少なくとも2
です.図中の垂直線は入力配列を表します.
[1,8,6,2,5,4,8,3,7]
.この場合、容器に水を入れることができる最大値は49
例:入力:[1,8,6,2,5,4,8,3,7]出力:49
答えの参考:
/**
* @param {number[]} height
* @return {number}
*/
var maxArea = function(height) {
let max = 0
for (let i = 0, j = height.length-1; i< j; ) {
// , ,
// ,
let minHeight = height[i] > height[j] ? height[j--] : height[i++]
// -- ++ , +1
max = Math.max(max, (j-i+1)* minHeight )
}
return max
};