Skip to content
Blogster on GitHub Dinesh on Twitter

11.盛最多水的容器

链接

思路

双向双指针遍历,每次进行面积的比较即可。考虑什么时候移动左指针和右指针,因为在计算面积的时候,高度是取两者的最小的,所以我们移动两个指针中最小的即可。

代码

class Solution {
    public int maxArea(int[] h) {
        int ans = Integer.MIN_VALUE;
        int n = h.length;

        for (int l = 0, r = n - 1; l < r; l++) {
            int min = Math.min(h[l], h[r]);
            ans = Math.max(ans, min * (r - l));
            if (min == h[r]) {
                r--;
                l--;
            }
        }

        return ans;
    }
}