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;
    }
};
相关推荐
2401_857865231 分钟前
C++模块接口设计
开发语言·c++·算法
add45a12 分钟前
嵌入式C++低功耗设计
开发语言·c++·算法
DeepModel14 分钟前
【概率分布】指数分布(Exponential Distribution)原理、推导与实战
python·算法·概率论
_饭团18 分钟前
指针核心知识:5篇系统梳理3
c语言·数据结构·算法·leetcode·面试·学习方法·改行学it
2401_8747325321 分钟前
C++中的状态模式
开发语言·c++·算法
BB学长21 分钟前
LBM vs FVM:谁才是 CFD 的未来?
人工智能·算法·机器学习
闻缺陷则喜何志丹21 分钟前
【枚举】P6786「SWTR-6」GCDs & LCMs|普及+
c++·算法·洛谷
m0_7166670741 分钟前
实时数据压缩库
开发语言·c++·算法
dapeng28701 小时前
多协议网络库设计
开发语言·c++·算法
星空露珠1 小时前
又双叒叕统计被炸死的lua脚本
开发语言·数据结构·算法·游戏·lua