栏目分类:
子分类:
返回
文库吧用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
文库吧 > IT > 软件开发 > 后端开发 > C/C++/C#

力扣盛最多水的容器

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

力扣盛最多水的容器

双指针解法

这道题是面试中一个比较经典的提醒,通过这道题的完成,我们可以对算法有一个更好的理解。
大多数人不会想到要用双指针解法,双指针解法的难点在于如何移动指针。

指针移动方法

定义两个指针,分别为左指针和右指针。
盛水最大水量=较短板*下面的间隔长
开时定义左指针为最左边的长度,右指针为右边的长度,取他们之间的较小值和底边相乘。如果较小的指针是左指针就让它向右边移动,如果是右指针就让它向左移动。直到左右两个指针相遇循环结束。
代码如下:

int maxArea(int* height, int heightSize){
int left=0,right=heightSize-1,area=0,maxarea=0;
while (leftif(hight[right]
area=hight[right]*(right-left);
if(area>maxarea)
{maxarea=area;
}
right--;
}
else{area=hight[left]*(right-left);

if(area>maxarea)
{maxarea=area;
}
left++;
}
}
return maxarea;
}
转载请注明:文章转载自 www.wk8.com.cn
本文地址:https://www.wk8.com.cn/it/1038637.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 wk8.com.cn

ICP备案号:晋ICP备2021003244-6号