2026-06-280

题目描述

给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。

找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。

返回容器可以储存的最大水量。

说明:你不能倾斜容器。

实现思路

  • 维护双指针从左到右
  • 同时维护更新最大值
  • 移动短板方式
    • 左边小则往左移
    • 右边移则往右移

代码实现

js
func maxArea(height []int) int { left, right := 0, len(height)-1 res := 0 for left < right { h := height[left] if height[right] < h { h = height[right] } area := h * (right - left) if area > res { res = area } // 移动短板 if height[left] < height[right] { left++ } else { right-- } } return res }

本文作者:曹子昂

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!