力扣11:盛水最多的容器

力扣11:盛水最多的容器

题目

给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, heighti) 。

找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。

返回容器可以储存的最大水量。

说明:你不能倾斜容器。

思路

最大水量其实就是容积,而容积我们可以用长×宽来表示。

所以这道题我们维护两个变量从而来表达长度和宽度,再定义一个最大容积的变量在宽度和长度变化后取最大值。

代码

cpp 复制代码
class Solution {
public:
    int maxArea(vector<int>& height) {
        //容积等于长度×宽度
        //所以我们只需要找到相乘最高的容积即可
        int n = height.size();
        int prev = 0;
        int cur = n-1;
        int maxvol = 0;

        while(prev < cur)
        {
            //长度是下标相减
            int length = cur - prev;
            //宽度是下标对应的值的最小值
            int width = min(height[cur],height[prev]);
            maxvol = max(maxvol,length*width);
            if(height[prev] < height[cur])
            {
                prev++;
            }
            else
            {
                cur--;
            }
        }
        return maxvol;

    }
};
相关推荐
阳明山水3 小时前
校准分位数驱动智能库存决策
人工智能·深度学习·算法·机器学习·架构
别动我齐刘海4 小时前
ROS2 Jazzy + C++ 实战路线——进阶学习3
c++·人工智能·vscode·python·算法·机器学习·机器人
zhangfeng11334 小时前
《从“人工适配“到“智能生成“:KernelSwift 跨国产芯片算子迁移全栈方案解读》 —— 强调范式跃迁和跨硬件属性,适合偏架构分析的写法
人工智能·算法·华为·ai编程·npu
0+1114 小时前
算法 --滑动窗口
c++·算法·leetcode
天真小巫5 小时前
2026.9.19总结
职场和发展
reikocao5 小时前
大场景下 Hessian 特征值放大与退化检测
算法
hetao17338375 小时前
2026-09-18 hetao1733837 的刷题记录
c++·算法
wuyk5555 小时前
21.计数排序:不用比较的“空间换时间”排序算法
python·算法·排序算法
Rabitebla5 小时前
【Linux系统编程】 指令(二):一条路径是怎么定位到文件的
linux·c++·笔记·学习·算法
顶点多余5 小时前
9.20 知识点查漏补缺
linux·面试·职场和发展