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

一、题目解析

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

二、算法原理

解法1:暴力枚举

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

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

单调性

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

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

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

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

三、代码示例

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

相关推荐
j7~20 分钟前
【C++】《unordered系列关联式容器以及哈希底层、哈希冲突、闭散列与开散列完整解析》
c++·哈希算法·开散列·闭散列·unordered_map·unordered_set·哈希底层结构
Tongsr43 分钟前
别只混淆代码:用 Kaleido 加固整个 Android Release AAB
前端·算法·github
高亦真43 分钟前
今天是学习嵌入式的第34天
linux·学习·算法
2402_882893861 小时前
封装红黑树实现map和set —— 从源码到模拟实现
c++·set·map
飞Link2 小时前
动作方法中的分割与过度分割方法全解析(含代码实战与踩坑案例)
人工智能·python·算法·计算机视觉
神仙别闹2 小时前
基于C++ MFC 实现的智慧公交系统
开发语言·c++·mfc
张宇Joaquin2 小时前
鲲鹏统一并行加速库KUPL--异步数据拷贝
线性代数·算法·矩阵·numpy
GlobalInfo2 小时前
创新不是追逐热点,是在变化中建立长期竞争力
大数据·算法
lvwangshu3 小时前
线性代数基础 Linear Algebra Basics
数学·算法
dear_bi_MyOnly3 小时前
函数模块化:企业级项目高效之道
c++·后端·学习