(C++)盛水最多的容器--双指针法

个人主页:Lei宝啊

愿所有美好如期而遇


力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台备战技术面试?力扣提供海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/container-with-most-water/

算法原理

双指针法,不一定是说就要使用指针,只是一种形象的说法,在数组中,我们一般将数组下标当做指针。这道题目中,我们定义left以及right,left赋值0,right赋值size-1,我们图示分析这道题目:

图示

代码

复制代码
class Solution {
public:
    int maxArea(vector<int>& height) 
    {
        int right = height.size()-1;
        int left = 0;

        int maxV = 0;
        while(right != left)
        {
            int h = height[right] > height[left] ? height[left] : height[right];
            int w = right - left;

            int V = h * w;
            if(V > maxV)
                maxV = V;

            if(height[right] >= height[left])
            {
                left++;
            }
            else
            {
                right--;
            }
        }

        return maxV;
    }
};
相关推荐
Vacant Seat27 分钟前
贪心算法-跳跃游戏II
算法·游戏·贪心算法
夜松云36 分钟前
从对数变换到深度框架:逻辑回归与交叉熵的数学原理及PyTorch实战
pytorch·算法·逻辑回归·梯度下降·交叉熵·对数变换·sigmoid函数
杨筱毅39 分钟前
【优秀三方库研读】【性能优化点滴】odygrd/quill 解决伪共享
c++·性能优化·三方库研读
八股文领域大手子40 分钟前
深入浅出限流算法(三):追求极致精确的滑动日志
开发语言·数据结构·算法·leetcode·mybatis·哈希算法
啊阿狸不会拉杆1 小时前
人工智能数学基础(一):人工智能与数学
人工智能·python·算法
一捌年1 小时前
java排序算法-计数排序
数据结构·算法·排序算法
freexyn2 小时前
Matlab自学笔记五十二:变量名称:检查变量名称是否存在或是否与关键字冲突
人工智能·笔记·算法·matlab
YuforiaCode2 小时前
第十二届蓝桥杯 2021 C/C++组 空间
c语言·c++·蓝桥杯
YuforiaCode2 小时前
第十二届蓝桥杯 2021 C/C++组 卡片
c语言·c++·蓝桥杯
渭雨轻尘_学习计算机ing2 小时前
二叉树构建算法全解析
算法·程序员