当前位置:网站首页>每日一题-盛最多水的容器-0716
每日一题-盛最多水的容器-0716
2022-08-05 05:17:00 【菜鸡程序媛】
题目
给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。
找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。
返回容器可以储存的最大水量。
思路
- 一个下标从左开始走,另一个下标从右开始走。对比两边柱子的高度,因为装水,所以较矮的一边是容器的高度。
- 当前能装的最大体积,就是min(height[left], height[right])*(right-left),用过的一边就需要向前进,再找当前的最大体积。
- 同时需要一个变量,不断的去更新这个容器能装水的最大值。res = Math.max(res, min(height[left], height[right])*(right-left))
代码
public int maxArea(int[] height) {
if(height == null || height.length == 0)
return 0;
int res = 0;
int left = 0, right = height.length - 1;
// 不断的迭代容器可以盛水的最大值
while(left < right){
res = height[left] > height[right] ? Math.max(res, (right - left) * height[right --]) :
Math.max(res, (right - left) * height[left ++]);
}
return res;
}
边栏推荐
- 【nodejs】第一章:nodejs架构
- 关于使用QML的MediaPlayer实现视频和音频的播放时遇到的一些坑
- 1004 成绩排名 (20 分)
- 基于STM32F4的FFT+测频率幅值相位差,波形显示,示波器,时域频域分析相关工程
- C语言—三子棋的实现
- AIDL detailed explanation
- 电子产品量产工具(5)- 页面系统实现
- C语言联合体union占用空间大小问题
- The University of Göttingen proposed CLIPSeg, a model that can perform three segmentation tasks at the same time
- 《基于机器视觉的输电线路交叉点在线测量方法及技术方案》论文笔记
猜你喜欢
随机推荐
SharedPreferences and SQlite database
OSPF故障排除办法
网络ID,广播地址,掩码位数计算
MSRA提出学习实例和分布式视觉表示的极端掩蔽模型ExtreMA
读论文 - Unpaired Portrait Drawing Generation via Asymmetric Cycle Mapping
C语言的一些小常识
六、请求处理—获取请求参数系列注解是怎样工作的?
MySQL主从复制—有手就能学会的MySQL集群搭建教程
C语言入门笔记 —— 函数(1)
TinyFlashDB:一种超轻量的可纠错的通用单片机flash存储方案
It turns out that the MAE proposed by He Yuming is still a kind of data enhancement
【UiPath2022+C#】UiPath数据类型
【Multisim仿真】直流稳压电源设计报告
常用 crud 的思考和设计
原型版本管理
「实用」运维新手一定不能错过的17 个技巧
You should write like this
C语言—扫雷的实现
一个小时教你如何掌握ts基础
七、请求处理——Map、Model类型参数处理原理