Python、C++、JavaScript、SQL、TypeScript の多様な LeetCode ソリューションを探索してください。面接の準備、学習、複数のプログラミング言語でのコードの練習に最適です。 Github リポジトリ リンク
整数配列が与えられます 身長
長さの n
。 がある n
の 2 つの端点が重なるように引かれた垂直線。 私は
ラインは (i, 0)
そして (i, 高さ[i])
.
コンテナに最も多くの水が含まれるように、X 軸とともにコンテナを形成する 2 本の線を見つけます。
戻る 容器に保存できる水の最大量.
知らせ 容器を傾けないでください。
例 1:
入力: 高さ = [1,8,6,2,5,4,8,3,7] 出力: 49 説明: 上記の垂直線は配列 [1,8,6,2,5,4,8,3,7] で表されます。この場合、コンテナーに収容できる水の最大面積は 49 です。
例 2:
入力: 高さ = [1,1] 出力: 1
制約:
n == 高さ.長さ
2 <= n <= 10 5
0 <= 高さ[i] <= 10 4
パイソン
import List クラスの入力から 解決策: def maxArea(self, height: List[int]) -> int: maxSum = 0 left, right = 0, len(height) - 1 while left < right: maxSum = max(maxSum, ( right - left) * min(height[left], height[right])) if height[left] < height[right]: left += 1 else: right -= 1 return maxSum Height = [1, 8, 6, 2、5、4、8、3、7] print(Solution().maxArea(Height))