华强北做网站,那些网站平台可以做3d建模,科技成果展示网站建设方案,服务关系型网站怎么做文章目录题目描述代码 解题思路题目描述
无
代码 解题思路
思路#xff1a;使用左右两个指针#xff0c;不断缩小范围#xff0c;并在每次缩小的过程对最大值进行更新。代码实现不难#xff0c;主要是弄明白为啥这样做就能得到正确的值简单描述就是#x…
文章目录题目描述代码 解题思路题目描述
无
代码 解题思路
思路使用左右两个指针不断缩小范围并在每次缩小的过程对最大值进行更新。代码实现不难主要是弄明白为啥这样做就能得到正确的值简单描述就是每次舍弃掉上图中的一根“柱子”选择左右指针中较矮的柱子。为什么呢因为对于被舍弃的柱子它已经完成了它的任务即“获取该柱子能组合出的最大的容器值”。之后另外一个指针无论如何再向舍弃柱子方向移动都不可能再取得更大的值了因为容器实际高度按照小了算所以可以缩小左右指针容纳的范围。
class Solution {public int maxArea(int[] height) {/**双指针法1. 代码实现不难2. 主要是算法正确性验证* 把问题缩小*/int len height.length;int left 0, right len-1;int max 0;while(left ! right){// 维护 maxmax Math.max(max, Math.min(height[left], height[right]) * (right - left));// 缩小范围if(height[right] height[left])right--;elseleft;}return max;}
}时间复杂度 O(n)即使遍历一次数组空间复杂度 O(1)