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

面试经典150题 day28

题目来源

力扣每日一题;题序:11

我的题解

方法一 双指针

使用两个指针left和right,初始分别指向最左侧和最右侧,然后每次移动矮的一侧。存水量=Math.min(height[left],height[right])*(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;
}

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

相关推荐
奋斗的小monkey4 分钟前
Spring Boot 3.x核心特性与性能优化实战
java·spring boot·微服务·性能优化·响应式编程
灵感__idea6 分钟前
Hello 算法:让前端人真正理解算法
前端·javascript·算法
程序猿DD38 分钟前
将 GPU 级性能带到企业级 Java:CUDA 集成实用指南
java·架构
学习2年半39 分钟前
小米笔试题:一元一次方程求解
算法
MATLAB代码顾问42 分钟前
MATLAB绘制多种混沌系统
人工智能·算法·matlab
大前端helloworld1 小时前
前端梳理体系从常问问题去完善-网络篇
前端·面试
极客BIM工作室1 小时前
演化搜索与群集智能:五种经典算法探秘
人工智能·算法·机器学习
一成码农1 小时前
JavaSE面向对象(上)
java
qq_574656251 小时前
java-代码随想录第66天|Floyd 算法、A * 算法精讲 (A star算法)
java·算法·leetcode·图论