【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;
   }
}
相关推荐
姜穆澜3 分钟前
机器学习实战指南:从算法原理到工程落地
人工智能·算法·机器学习
Q一件事1 小时前
RWEQ——保留与消去P的soil_loss联合推导
算法
HugoStudio_SWAN2 小时前
洛谷 P10719 \[GESP202406 五级] 黑白格——暴力美学与图像处理的最小外接矩形
c++·图像处理·人工智能·学习·程序人生·算法·目标跟踪
那年窗外下的雪.2 小时前
AIDC 学习日志|第 20 天|多归属业务验收与哈希不均定位
学习·算法·哈希算法
s_w.h3 小时前
【 刷题 】双指针
算法
啥都想学点的研究生3 小时前
一篇文章讲清楚:K-Means聚类算法
算法·kmeans·聚类
白狐_7983 小时前
408 数据结构|KMP做题方法:next、nextval和高频易错点
数据结构·算法
月华路3 小时前
《模型不玄学》第20章 两种评估视角
人工智能·算法·机器学习
禹凕3 小时前
快速幂算法详解与实战
python·算法