盛最多水的容器
给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。
找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。
返回容器可以储存的最大水量。
说明:你不能倾斜容器。
public class Solution {
public int MaxArea(int[] height) {
int Valume = 0;
int currentValume = 0;
int HightVal = 0;//高度Y
int WidthVal = 0;//宽度X
int Leftspeen = 0;//左侧的指针
int Rightspeen = height.Length - 1;//右侧的指针
bool isChecked = true;//两边是否快要碰头了
while (isChecked)
{
HightVal = height[Leftspeen] > height[Rightspeen] ? height[Rightspeen] : height[Leftspeen];//计算高度
WidthVal = Rightspeen - Leftspeen;//计算宽度
currentValume = HightVal * WidthVal;//计算面积
if (currentValume > Valume)//面积的判断,取得最大值
{
Valume = currentValume;
}
if (Leftspeen + 1 == Rightspeen)//是否快要碰头的判断
{
break;
}
if (height[Leftspeen] >= height[Rightspeen])//指针的偏移的判断,移动较小的那一侧
{
Rightspeen = Rightspeen - 1;
}
else
{
Leftspeen = Leftspeen + 1;
}
}
return Valume;
}
}