双指针-11.盛水最多的容器-力扣(LeetCode)

一、题目解析

结合示例我们能发现装水的多少取决于最短的直线,所以为了最大容量需要两边最大且距离长。

二、算法原理

解法1:暴力枚举

用两层for循环枚举出所有高度区间,计算体积,比较出最大的一个容量。当然这种解法无疑是会超时的,无论遇到什么题我们都需要知道暴力解法是怎么样的,我们的解法都是在暴力解法的基础上优化的。

解法2:利用单调性,使用双指针

单调性

利用双指针,一端在开头,一端在末尾,方向相反去遍历heigh数组,当相等时结束循环,对枚举得到v做max处理得出最大的一个 。

需要left指向起始位置,right指向末尾位置,v来计算每次枚举的容量,areamax赋值INT_MIN,用与比较和记录最大值。

指针的移动:谁的heigh小谁移动。

可以根据上面的原理去自己实现一下,链接:11. 盛最多水的容器 - 力扣(LeetCode)

三、代码示例

看到最后,如果对您有所帮助还请留下一个免费的赞和收藏,我们下期再见!

相关推荐
蜡笔小马2 小时前
10.Boost.Geometry R-tree 空间索引详解
开发语言·c++·算法·r-tree
我是咸鱼不闲呀2 小时前
力扣Hot100系列20(Java)——[动态规划]总结(下)( 单词拆分,最大递增子序列,乘积最大子数组 ,分割等和子集,最长有效括号)
java·leetcode·动态规划
唐梓航-求职中2 小时前
编程-技术-算法-leetcode-288. 单词的唯一缩写
算法·leetcode·c#
仟濹2 小时前
【算法打卡day3 | 2026-02-08 周日 | 算法: BFS】3_卡码网99_计数孤岛_BFS | 4_卡码网100_最大岛屿的面积DFS
算法·深度优先·宽度优先
Ll13045252982 小时前
Leetcode二叉树part4
算法·leetcode·职场和发展
林开落L2 小时前
从零开始学习Protobuf(C++实战版)
开发语言·c++·学习·protobuffer·结构化数据序列化机制
林开落L2 小时前
从入门到了解:Protobuf、JSON、XML 核心解析(C++ 示例)
xml·c++·json·protobuffer·结构化数据序列化机制
Queenie_Charlie2 小时前
stars(树状数组)
数据结构·c++·树状数组
颜酱2 小时前
二叉树遍历思维实战
javascript·后端·算法
宝贝儿好2 小时前
第二章: 图像处理基本操作
算法