给定n个非负整数,表示水库隔板的高度,选出两个,求最大的容器面积
两个指针,从两头往中间移动,每次移动较小的数值,求最大的积
int FindMaxWater(int *IA, int len)
{
int i=0,j=len-1;
int ret = 0;
while(i < j)
{
ret = max(ret, (j-i) * min(IA[i], IA[j]));
if(IA[i] <= IA[j])
{
i++;
}
else
{
j--;
}
}
return ret;
}
int main()
{
int IA[] = {1,8,6,2,5,4,8,3,7};
int ret = FindMaxWater(IA, 9);
printf("ret = %d \n", ret);
}
该博客介绍了一种使用双指针算法解决计算给定数组中两个非负整数作为高度形成的矩形最大面积的问题。通过从数组两端向中间移动,每次移动较小的数值,并更新最大面积,最终找到最大容器面积。代码示例展示了具体的实现过程。
592

被折叠的 条评论
为什么被折叠?



