题解 | #盛水最多的容器#

盛水最多的容器

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
        //暴力枚举,超时
        // int ret = 0;
        // int v = 0;
        // for(int i=0;i<height.length;i++){
        //     for(int j=i+1;j<height.length;j++){
        //         v = Math.abs(j-i) *Math.min(height[j],height[i]);

        //         ret = Math.max(ret,v);
        //     }
        // }
        // return ret;

        //双指针:从两边开始利用单调性.高度减少时向里缩进,宽度也在减少。规律进行。
        int ret =0;
        int left=0;
        int right = height.length-1;
        while(left<right){
            int v = Math.min(height[left],height[right]) * (right-left);
            ret = Math.max(ret,v);

            //移动,移动高度小的
            if(height[left]<height[right]) left++;
            else right--;
        }

        return ret;
    }
}

全部评论

相关推荐

06-11 13:34
门头沟学院 C++
offe从四面八方来:我真的没时间陪你闹了
点赞 评论 收藏
分享
牛客刘北:如果暑期实习是27届的话,你要晚一年才会毕业,企业为什么会等你呢?要搞清时间逻辑呀!27届现在实习只能是在暑假实习,这是日常实习,不是暑期实习。所以多去投日常实习吧,暑期实习肯定不会要你的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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