面试算法-139-盛最多水的容器

题目

给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。

找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。

返回容器可以储存的最大水量。

说明:你不能倾斜容器。

示例 1:

输入:[1,8,6,2,5,4,8,3,7]

输出:49

解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。

java 复制代码
class Solution {
    public int maxArea(int[] height) {
        int n = height.length;
        int left = 0;
        int right = n -1;
        int max = 0;
        while(left < right){
            if(height[left] <= height[right]){
                max = Math.max(max,(height[left] * (right - left)));
                left++;
            }else{
                max = Math.max(max,(height[right] * (right - left)));
                right--;
            }   
        }
        return max;
    }
}
相关推荐
无限进步_1 分钟前
【C语言】函数指针数组:从条件分支到转移表的优雅进化
c语言·开发语言·数据结构·后端·算法·visual studio
Q741_14723 分钟前
C++ 分治 快速选择算法 堆排序 TopK问题 力扣 215. 数组中的第K个最大元素 题解 每日一题
c++·算法·leetcode·分治·1024程序员节·topk问题·快速选择算法
文火冰糖的硅基工坊27 分钟前
[人工智能-大模型-57]:模型层技术 - 软件开发的不同层面(如底层系统、中间件、应用层等),算法的类型、设计目标和实现方式存在显著差异。
人工智能·算法·中间件
鱼儿也有烦恼32 分钟前
快速学完 LeetCode top 1~50 [特殊字符]
java·算法·leetcode·1024程序员节
独自破碎E33 分钟前
LeetCode 380: O(1) 时间插入、删除和获取随机元素
java·算法·leetcode
Brookty43 分钟前
【算法】前缀和(二)使用
java·学习·算法·前缀和·动态规划·1024程序员节
不良人龍木木1 小时前
云图-地基云图
图像处理·算法·计算机视觉·1024程序员节
RTC老炮1 小时前
webrtc弱网-PccNetworkController类源码分析与算法原理
网络·算法·webrtc
Swift社区1 小时前
LeetCode 406 - 根据身高重建队列
算法·leetcode·1024程序员节
敲上瘾1 小时前
背包dp——动态规划
c++·算法·动态规划