盛最多水的容器

题目链接

盛最多水的容器https://leetcode.cn/problems/container-with-most-water/description/

题目要求

样例

算法思路

枚举出能构成的所有容器,找出其中容积最大的值。

◦ 容器容积的计算方式:

设两指针 i , j ,分别指向水槽板的最左端以及最右端,此时容器的宽度为j - i 。由于容器的高度由两板中的短板决定,因此可得容积公式 :v = (j - i) * min( heighti, heightj)

个人复写思路

指针指向两个端点,为两个边界,固定一个边界,改变另一个,水的容积如下变化:

◦ 容器的宽度一定变小。

◦ 由于左边界较小,决定了水的高度。如果改变左边界,新的水面高度不确定,但是一定不会超过右边的柱子高度,因此容器的容积可能会增大。

◦ 如果改变右边界,无论右边界移动到哪里,新的水面的高度⼀定不会超过左边界,也就是不会超过现在的水面高度,但是由于容器的宽度减小,因此容器的容积⼀定会变小的。

解题代码

java 复制代码
class Solution {
    public int maxArea(int[] height) {
        int max=0;
        int left=0,right=height.length-1;
        while(left<right){
            int v=(right-left)*Math.min(height[right],height[left]);
            max=Math.max(max,v);
            if(height[right]>height[left]){
                left++;
            }else{
                right--;
            }      
          }
        return max;
    }
}
相关推荐
怕浪猫5 小时前
RAG 面试 6 连问,从原理到优化全部覆盖
python·算法·面试
无线通信科研笔记5 小时前
IEEE TVT 2026 论文精读与完整复现|相位误差如何重塑近场 RIS 的幅相响应
论文阅读·人工智能·python·算法·论文笔记
daidaidaiyu6 小时前
ThingsBoard 集群的核心逻辑源码分析
java
mmmmath_36 小时前
二叉树の递归遍历
算法
All for pursuit.7 小时前
【位运算-1】338.比特位计数
数据结构·c++·算法·leetcode
我可能是个假开发7 小时前
FTP Unicode 文件名导致 `550` 的问题分析与解决方案
java·开发语言·spring
caoerzhong7 小时前
中小企业上 WMS 该先上哪几块:JeeWMS 开源 Java 仓库管理系统的分批上线清单
java·python·开源
小师兄吃牛肉7 小时前
C语言中的nullptr有必要吗
c语言·c++·算法
【JAVA】玩家8 小时前
Spring核心原理全解析:从零到生产实战
java·后端·spring
Wang's Blog8 小时前
Java框架 SpringCloud 快速入门: 实现 Feign 最佳实践(抽取方式)
java·spring cloud