LeetCode 11.盛最多水的容器

LeetCode 11.盛最多水的容器

思路🧐:

可以用对撞指针的方式,左右两边分别定义一个变量,都往中间走,相遇停止,中间不断更新最大容积,而选出来的最大值就是最大容积。

这里容积的计算方式为,左右两个边选出更短的边乘底边(下标相减) 。我们用对撞指针判断哪个边更短哪边移动,原理是当指针向中间走时,底边一定是越来越短的,而更短的那个边容积一定更小,所以需要淘汰,每次都更新最大容积,直到左右指针相遇,所选出来的容积就是最大值。

代码🔎:

c++ 复制代码
class Solution {
public:
    int maxArea(vector<int>& height) {
        int left = 0;
        int right = height.size() - 1;
        int MaxV = 0;
        while(left < right)
        {
            int v = min(height[left], height[right]) * (right - left); //计算容积
            MaxV = max(v,MaxV); //判断是否需要更新
            if(height[left] > height[right]) //哪边小哪边动
                right--;
            else
                left++;
        }
        return MaxV;
    }
};
相关推荐
承渊政道18 分钟前
【优选算法】(实战体会位运算的逻辑思维)
数据结构·c++·笔记·学习·算法·leetcode·visual studio
Frostnova丶31 分钟前
LeetCode 2573. 找出对应 LCP 矩阵的字符串
算法·leetcode·矩阵
承渊政道1 小时前
【优选算法】(实战推演模拟算法的蕴含深意)
数据结构·c++·笔记·学习·算法·leetcode·排序算法
林鸿群1 小时前
实现支持纳秒级精度的时间引擎(C++)
算法·定时引擎
Keep learning!1 小时前
PCA主成分分析学习
学习·算法
专注VB编程开发20年1 小时前
CUDA实现随机切割算法,显卡多线程计算
算法·cuda
2301_788770551 小时前
OJ模拟4
算法
NAGNIP2 小时前
一文搞懂CNN经典架构-AlexNet!
人工智能·算法
2401_878530213 小时前
自定义内存布局控制
开发语言·c++·算法
专注VB编程开发20年3 小时前
PNG、GIF透明游戏角色人物输出一张图片技巧,宽度高度读取
算法