
leetcode11.盛最多水的容器
初始化两个指针left和right,分别从数组的开头和结尾开始。 计算当前两指针之间的水平距离b。 比较height[left]和height[right]的高度。 如果height[left]小于等于height[right],则取height[left]作为容器的高度,并将left指针向右移动一位。 否则,取height[right]作为容器的高度,并将right指针向左移动一位。 计算当前水平距离b与容器高度h的乘积,作为当前的水容量。 比较当前容量与最大容量res,更新最大容量。 重复步骤2至7,直到left指针超过right指针。
发布日期:2021-05-15 09:03:37
浏览次数:18
分类:精选文章
本文共 500 字,大约阅读时间需要 1 分钟。
给定n个非负整数a1,a2,…,an,每个数代表坐标中的一个点(i, ai)。在坐标平面上画n条垂直线,垂直线i的两个端点分别是(i, ai)和(i, 0)。目标是找出其中两条线,使得它们与x轴共同构成的容器可以容纳最多的水。
这个问题可以通过双指针方法来解决。具体步骤如下:
这种方法的时间复杂度为O(n),因为每个指针最多移动n次。该算法能够高效地解决问题,并且实现简单易懂。
通过上述方法,可以轻松找到能够容纳最多水的两条垂直线与x轴围成的区域。
发表评论
最新留言
不错!
[***.144.177.141]2025年04月14日 06时02分38秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Mapper 接口方法如何与注解里的 SQL 进行绑定的?
2019-03-12
python安装和配置(win10)
2019-03-12
重构函数(1)条件合并
2019-03-12
2020编码大赛(1)题目
2019-03-12
BitChanger语言
2019-03-12
Pythagorea(3)第16-21章
2019-03-12
纪念碑谷(1-5章)
2019-03-12
基数树(radix tree)
2019-03-12
58Q游戏(4)73(5)85(6)98(7)
2019-03-12
独立钻石棋详解
2019-03-12
106 多米诺骨牌(12)119(8)130(9)142(10)150(11)
2019-03-12
算两次计数法
2019-03-12
点亮细胞171-180
2019-03-12
C++ Primer Plus读书笔记:c++字符串
2019-03-12
CSU 1757: 火车入站(区间覆盖的最大覆盖深度)
2019-03-12
C++ Primer Plus读书笔记:循环读取(错误处理)
2019-03-12
skimage与cv2 安装失败的解决办法
2019-03-12
linuxmint 上面装谷歌浏览器
2019-03-12
windows/linux下Anaconda管理的(安装的)包的位置
2019-03-12