当前位置:
首页 >
【LeetCode笔记】11.盛最多水的容器(Java、双指针法)
发布时间:2024/7/23
36
豆豆
生活随笔
收集整理的这篇文章主要介绍了
【LeetCode笔记】11.盛最多水的容器(Java、双指针法)
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
文章目录
- 题目描述
- 代码 & 解题思路
题目描述
- 无
代码 & 解题思路
- 思路:使用左右两个指针,不断缩小范围,并在每次缩小的过程对最大值进行更新。
- 代码实现不难,主要是弄明白为啥这样做就能得到正确的值
- 简单描述就是:每次舍弃掉上图中的一根“柱子”,选择左右指针中较矮的柱子。
- 为什么呢?因为对于被舍弃的柱子,它已经完成了它的任务,即“获取该柱子能组合出的最大的容器值”。之后另外一个指针无论如何再向舍弃柱子方向移动,都不可能再取得更大的值了(因为容器实际高度按照小了算),所以可以缩小左右指针容纳的范围。
- 时间复杂度 O(n),即使遍历一次数组
- 空间复杂度 O(1)
总结
以上是生活随笔为你收集整理的【LeetCode笔记】11.盛最多水的容器(Java、双指针法)的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 【LeetCode笔记】88. 合并两个
- 下一篇: 【LeetCode笔记】213. 打家劫