题解 | 盛水最多的容器

盛水最多的容器

https://www.nowcoder.com/practice/3d8d6a8e516e4633a2244d2934e5aa47

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param height int整型一维数组
     * @return int整型
     */
    public int maxArea (int[] height) {
        // write code here
        if (height.length <= 1) {
            return 0;
        }
        int max = 0;
        for (int i = 0; i < height.length - 1; i++) {
            for (int j = height.length - 1; j > i; j--) {
                if (height[i] <= height[j]) {
                    int min =  Math.min(height[i], height[j]);
                    int h =  min * (j - i);
                    max = Math.max(h, max);
                    break;
                }else{
                int min =  Math.min(height[i], height[j]);
                int h =  min * (j - i);
                max = Math.max(h, max);
                }
            }
        }
        return max;
    }
}

头指针指向第一个数,尾指针指向最后一个数,依次比较。如果第一个数比最后一个小则说明当前循环的最大值为height[i]*(j-i);

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务