5、双指针-盛最多水的容器

解析:

  1. 一个指针在数组的开始(我们称之为 L),另一个在数组的末尾(称之为 R)。
  2. 然后,我们计算当前 LR 之间的容器可以容纳的水的量,这个量由两个指针之间的距离(R - L)和两个指针指向的高度中较小的那个决定(因为水的高度不能超过两边中较低的那个)。
  3. 每次迭代后,我们将较矮的那个指针向另一个指针的方向移动一步(因为如果移动较高的那个指针,容器的高度不会增加,而宽度会减少,所以容积只可能变小)。

代码如下:

class Solution {
    public int maxArea(int[] height) {
      if (height==null||height.length==0){
            return 0;
        }
        int L=0;
        int R=height.length-1;
        int max=0;
        while (L<R){
            int w=R-L;
            int h=Math.min(height[L],height[R]);
            max=Math.max(max,w*h);
            if (height[L]>height[R]){
                R--;
            }else {
                L++;
            }
        }
        return max;
    }
}

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-04-07 06:52:04       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-07 06:52:04       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-07 06:52:04       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-07 06:52:04       18 阅读

热门阅读

  1. MQTT面试题

    2024-04-07 06:52:04       12 阅读
  2. leetcode热题HOT 23. 合并 K 个升序链表

    2024-04-07 06:52:04       13 阅读
  3. [高考] 数理化

    2024-04-07 06:52:04       12 阅读
  4. centos 安装 stable-diffusion 详细流程

    2024-04-07 06:52:04       12 阅读
  5. QT智能指针

    2024-04-07 06:52:04       19 阅读
  6. 【工具或平台】Gem5编译

    2024-04-07 06:52:04       14 阅读
  7. vue指令v-model

    2024-04-07 06:52:04       14 阅读
  8. Transformer架构的自注意力机制

    2024-04-07 06:52:04       13 阅读
  9. Django -- 报错

    2024-04-07 06:52:04       11 阅读