题解 | #接雨水问题#

盛水最多的容器

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

双指针

class Solution {
public:
    int maxArea(vector<int>& height) {
        // write code here
                //定义变量初始化
        int left = 0,right = height.size()-1;
        int Maxleft = 0,Maxright = 0;
        int ans = 0;
                //结束条件为左右指针相遇
        while(left < right){
                        //更新左右的最大值,我们只需要左右两边较小的那个最大值
            Maxleft = max(Maxleft,height[left]);
            Maxright = max(Maxright,height[right]);
                        //更新最大容器ans
            if(Maxleft < Maxright){
                ans = max(ans,(right-left)*Maxleft);
                left++;
            }else{
                ans = max(ans,(right-left)*Maxright);
                right--;
            }
        }
        return ans;
    }
};

全部评论

相关推荐

不愿透露姓名的神秘牛友
03-28 13:48
hory权:校招vip纯神人了,还说自己是什么师范大学的
点赞 评论 收藏
分享
牛客583549203号:腾讯还好,况且实习而已,实习生流动性很大,属于正常现象,记得和HR委婉解释
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务