盛最多水得容器——C++
·

题目让我们找寻最大得面积。
长方形得面积我们都知道是S=底*高。
这里底是两个下标的差,而高则是数组height中得两个值之间小的那个数。

我们可以从示例中了解到如果两个数靠的很近那么肯定是面积小的。
这里有两个8,一个在X=2,另一个在X=7。
我们现在选择最后一个数是高也就是Y=7。
选择第一个8,面积是7*7=49。
第二个8则是2*7=14。
49 > 14
所以我们的高不可能是这里面的值。
什么意思?
也就是如果里面有值跟我们所选择得边界值一样,舍弃,它不可能围成最大面积。
有了这个想法我们得代码也就是呼之欲出了。

确定左右指针来让我们进行数值比较的时候可以移动。
接着创建一个可以接受里面传出来最大面积得变量。
在使用while循环,只要左跟右指针没有碰到,那么就一直循环代码,每次都动态变化curArea得值,最终当循环结束,我们的最大值maxWater也就出来了。
更多推荐
所有评论(0)