面试经典150题——盛最多水的容器

面试经典150题 day28

题目来源

力扣每日一题;题序:11

我的题解

方法一 双指针

使用两个指针left和right,初始分别指向最左侧和最右侧,然后每次移动矮的一侧。存水量=Math.min(heightleft,heightright)*(right-left)
时间复杂度 :O(n)
空间复杂度:O(1)

java 复制代码
public int maxArea(int[] height) {
    int left=0,right=height.length-1;
    int res=0;
    while(left<right){
        int t=Math.min(height[left],height[right])*(right-left);
        res=Math.max(res,t);
        if(height[left]<height[right]){
            left++;
        }else{
            right--;
        }
    }
    return res;
}

有任何问题,欢迎评论区交流,欢迎评论区提供其它解题思路(代码),也可以点个赞支持一下作者哈😄~

相关推荐
karry_k2 小时前
MyBatis批量insert-select踩坑:useGeneratedKeys=true 可能让PostgreSQL返回大量插入结果
java·后端
karry_k2 小时前
PostgreSQL 在 MyBatis 中执行正常 SQL 失效:一次 DELETE USING 踩坑记录
java·后端
vibecoding日记3 小时前
双非如何快速入职字节等大厂大模型?真实案例分析:推理优化和投机解码
算法·求职·大模型工程师
yszaygr21385 小时前
Verilog参数化游程编码RLE模块
算法
SamDeepThinking6 小时前
从源码到代码:MyBatis-Flex 与 MyBatis-Plus 的逐项对比
java·后端·程序员
望易6 小时前
刚设计的大模型架构-双域耦合认知框架
算法·架构
用户852495071846 小时前
解密 JavaScript 中的 this:谁才是真正的调用者?
javascript·面试
Heo6 小时前
Vite进阶用法详解
前端·javascript·面试
洛卡卡了6 小时前
Claude Code rules 要怎么用,团队协作时如何统一代码规范呢?
面试·agent·claude