当左端线段L小于右端线段R时,我们把L右移,这时舍弃的是L与右端其他线段(R-1, R-2, ...)组成的木桶,这些木桶是没必要判断的,因为这些木桶的容积肯定都没有L和R组成的木桶容积大。

public class Solution {
    public int maxArea(int[] height) {
        int p = 0;
        int q = height.length - 1;
        
        int max = 0;
        int tempMax = 0;
        
        while (p < q) {
            if (height[p] < height[q]) {
                tempMax =  (q - p) * height[p];
                if (tempMax > max) {
                    max = tempMax;
                }
                p++;
            } else {
                tempMax =  (q - p) * height[q];
                if (tempMax > max) {
                    max = tempMax;
                }
                q--;
            }
        }
        
        return max;
    }
}

自责自己为什么没做出来


chenatu
106 声望12 粉丝