题目让我们找寻最大得面积。

长方形得面积我们都知道是S=底*高。

这里底是两个下标的差,而高则是数组height中得两个值之间小的那个数。

我们可以从示例中了解到如果两个数靠的很近那么肯定是面积小的。

这里有两个8,一个在X=2,另一个在X=7。

我们现在选择最后一个数是高也就是Y=7。

选择第一个8,面积是7*7=49。

第二个8则是2*7=14。

49 > 14

所以我们的高不可能是这里面的值。

什么意思?

也就是如果里面有值跟我们所选择得边界值一样,舍弃,它不可能围成最大面积。

有了这个想法我们得代码也就是呼之欲出了。

确定左右指针来让我们进行数值比较的时候可以移动。

接着创建一个可以接受里面传出来最大面积得变量。

在使用while循环,只要左跟右指针没有碰到,那么就一直循环代码,每次都动态变化curArea得值,最终当循环结束,我们的最大值maxWater也就出来了。

更多推荐