【LeetCode-中等题】11. 盛最多水的容器

题目

题解一:双指针法

思路:

题目中的示例为:

在初始时,左右指针分别指向数组的左右两端,它们可以容纳的水量为 min⁡(1,7)∗8=8

此时我们需要移动一个指针。移动哪一个呢?应该移动对应数字较小的那个指针(即此时的左指针)。这是因为,由于容纳的水量是由

所以,我们将左指针向右移动:

此时可以容纳的水量为 min⁡(8,7)∗7=49。由于右指针对应的数字较小,我们移动右指针:

此时可以容纳的水量为 min⁡(8,3)∗6=18,由于右指针对应的数字较小,我们移动右指针:

此时可以容纳的水量为 min⁡(8,8)∗5=40,两指针对应的数字相同,我们可以任意移动一个,例如左指针:

最后左指针大于右指针的时候,就是循环结束的条件

动图可以参考:盛最多水的容器

代码:

java 复制代码
class Solution {
    public int maxArea(int[] height) {

    //解法:双指针法
    int pre = 0;
    int bef = height.length-1;
    //记录每次计算的最大面积
    int maxeare = 0;

    while(pre < bef){
      int crueare = (Math.min(height[pre],height[bef]))*(bef - pre);//记录此刻的两个指针向的区域的面积
      maxeare = Math.max(crueare,maxeare);//刷新最大面积
      //让指向小的数,移动指针;
      if(height[pre]<height[bef])  
          pre = pre + 1;
      else
          bef = bef - 1;
    }
   return maxeare;
   }
}
相关推荐
henyaoyuancc3 分钟前
vla学习 富
人工智能·算法
Gyoku Mint1 小时前
机器学习×第五卷:线性回归入门——她不再模仿,而开始试着理解你
人工智能·python·算法·机器学习·pycharm·回归·线性回归
穗余1 小时前
WEB3全栈开发——面试专业技能点P6后端框架 / 微服务设计
面试·职场和发展
蒙奇D索大1 小时前
【数据结构】图论最短路径算法深度解析:从BFS基础到全算法综述
数据结构·算法·图论·广度优先·图搜索算法
trouvaille1 小时前
哈希数据结构的增强
算法·go
我不是小upper2 小时前
L1和L2核心区别 !!--part 2
人工智能·深度学习·算法·机器学习
穗余3 小时前
WEB3全栈开发——面试专业技能点P5中间件
中间件·面试·职场和发展
liujing102329293 小时前
Day09_刷题niuke20250609
java·c++·算法
不7夜宵3 小时前
力扣热题100 k个一组反转链表题解
算法·leetcode·链表