[LeetCode] 0011. 最も多くの水が入った容器

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))
				
			
ja日本語