当前位置:网站首页>力扣题解8/10
力扣题解8/10
2022-08-11 09:03:00 【缘聚654】
难度中等3712
给定一个长度为 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。
示例 2:
输入:height = [1,1] 输出:1
一,暴力法

由题目可以很容易联想到采用双循环来分别计算每个组合的面积,在保留其最大值
·面积的表达式为 fmin(a,b)*(b-a);但是使用暴力法会导致超时,因为其中包含着一些不必要的计算拖慢了代码执行的速度,所以我们要对其进行优化,那么如何减少不必要的计算呢?

在这种情况下可以很清晰的看出当两侧的高度其中一侧足够低时,那么此时以这个高度和其他高度组合的情况下最大面积在最远处,而中间的情况是不必要计算的。然后我们将左指针向右移,在计算下种情况下的最大值

这样,计算一类情况后将高度低的指针向中心移动就能在减少计算量的情况下得到最大面积

采用了双指针来替代双重循环,具体代码如一下
int maxArea(int* height, int heightSize){
int max=0,i=0,j=heightSize-1;
while(i<j)
{
if(max<fmin(height[i],height[j])*(j-i))
max=fmin(height[i],height[j])*(j-i);
if(height[i] < height[j])
{
i++;
}
else
{
j--;
}
}
return max;
}边栏推荐
猜你喜欢

picker选择器出现object解决办法

Unity3D - modification of the Inspector panel of the custom class

向日葵安装教程--向日葵远程桌面控制

Analysis of the Status Quo of Enterprise Server Host Reinforcement

QTableWidget 使用方法

js将table生成excel文件并去除表格中的多余tr(js去除表格中空的tr标签)
![[wxGlade learning] wxGlade environment configuration](/img/fd/32ceb707c4468e18038b813b6f3925.png)
[wxGlade learning] wxGlade environment configuration

Contrastive Learning Series (3)-----SimCLR

wordpress插件开发03-简单的all in one seo 插件开发

如何在移动钱包中搭建一个小程序应用商店
随机推荐
gRPC系列(一) 什么是RPC?
单元测试系统化讲解之PowerMock
基于 VIVADO 的 AM 调制解调(3)仿真验证
[UEFI]EFI_DEVICE_PATH_PROTOCOL 结构体初始化的一个例子
tensorflow 基础操作1(tensor 基本属性 , 维度变换,数学运算)
音视频+AI,中关村科金助力某银行探索发展新路径 | 案例研究
Getting Started with Kotlin Algorithm to Calculate the Number of Daffodils
Getting Started with Kotlin Algorithms Calculating Prime Factors
IPQ4019/IPQ4029 support WiFi6 MiniPCIe Module 2T2R 2×2.4GHz 2x5GHz MT7915 MT7975
Alibaba Sentinel - Slot chain解析
DataGrip配置OceanBase
What should I do if the mysql data query causes the cup to be full because the query time span is too large
redis模拟面试
OAuth Client默认配置加载
Unity3D——自定义类的Inspector面板的修改
基于C#通过PLCSIM ADV仿真软件实现与西门子1500PLC的S7通信方法演示
golang string manipulation
观察表情和面部,会发现他有焦虑和失眠的痕迹
MySQL性能调优,必须掌握这一个工具!!!(1分钟系列)
对比学习系列(三)-----SimCLR