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

一、题目解析

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

二、算法原理

解法1:暴力枚举

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

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

单调性

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

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

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

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

三、代码示例

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

相关推荐
flashlight_hi5 分钟前
LeetCode 分类刷题:74. 搜索二维矩阵
python·算法·leetcode·矩阵
小年糕是糕手8 分钟前
【数据结构】算法复杂度
c语言·开发语言·数据结构·学习·算法·leetcode·排序算法
明天会有多晴朗18 分钟前
深度剖析 C++ 之内存管理篇
c语言·开发语言·c++
程序员-King.39 分钟前
day86——有效的字母异位词(LeetCode-242)
算法·字符串
xxxxxxllllllshi1 小时前
Java 代理模式深度解析:从静态到动态,从原理到实战
java·开发语言·笔记·算法·代理模式
Starry_hello world1 小时前
C++ 二分算法(1)
c++·算法·有问必答
小杨勇敢飞2 小时前
拼图小游戏开发日记 | Day3(已完结)
java·数据结构·算法
眠りたいです2 小时前
基于脚手架微服务的视频点播系统-脚手架开发部分-jsoncpp,protobuf,Cpp-httplib与WebSocketpp中间件介绍与使用
c++·websocket·微服务·中间件·json·protobuf·cpp-httplib
Guan jie2 小时前
10.6作业
数据结构·算法·排序算法
haidizym2 小时前
ssc-FinLLM 金融大模型 相关链接
人工智能·算法