盛水最多的容器

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

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

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

说明:你不能倾斜容器。

 

//class Solution { public int maxArea(int[] height) { int l = 0, r = height.length - 1; int maxArea = 0; while (l < r) { int area = (r - l) * Math.min(height[l], height[r]); int minH = Math.min(height[l], height[r]); maxArea = Math.max(maxArea, area); while (height[l] <= minH && l < r) { l++; } while (height[r] <= minH && l < r) { r--; } } return maxArea; } }

 

//思路:从最左和最右开始,每次选出两个中的最小高度,往后遍历的过程中直接跳过高度小于minheight的线,直到出现大于minheight的线才有可能得到更大的容器.

本文作者:Zzzzzzxz

本文链接:https://www.cnblogs.com/zzzzzzx/p/17142113.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   Zzzzzzxz  阅读(9)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
展开