Loading...

【双指针】盛水最多的容器

阅读 ...

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

求解代码

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
public int maxArea(int[] height) {
        int left = 0; // 左指针
        int right = height.length - 1; // 右指针
        int ans = 0; // 记录最大面积,初始为0(面积非负)

        // 双指针相向遍历,直到指针相遇
        while (left < right) {
            // 计算当前容器面积并更新最大值:宽度(左右指针间距) × 有效高度(矮柱子决定,取最小值)
            ans = Math.max(ans, (right - left) * Math.min(height[right], height[left]));
            // 移动更矮的柱子指针(只有这样才有可能增大有效高度,获得更大面积)
            if (height[right] < height[left]) {
                right--; 
            } else {
                left++; 
            }
        }
        return ans; // 返回最大面积
    }
本文由 iamxurulin 原创发布,转载请保留原文链接。
最后更新于 2026-08-23 17:21:42
关于作者与文章

本文为 iamxurulin 原创技术文章。如对内容有疑问或建议,欢迎在评论区交流讨论。

Coder_Studio - 记录后端开发、算法与 AI 的成长之路