Given n non-negative integers a1, a2, ..., an, where each represents a point at coordinate (i, ai). n vertical lines are drawn such that the two endpoints of line i is at (i, ai) and (i, 0). Find two lines, which together with x-axis forms a container, such that the container contains the most water.
Note: You may not slant the container and n is at least 2.
题意是说在给定的一个数组中,将数组的下标作为转换坐标的X轴,数组下标对应的值为Y轴。在这样的情况下求取两个元素组成的长方形面积最大。解题思路
(1)暴力搜索
也就是每种情况都去遍历一遍,肯定能找到一个最优解,但是这样的方式很暴力(O(N^2)),直接导致gg
显然这样的方式是不能使用的。
(2)面积最大时条件
通过分析面积最大时的条件,可以知道寻找到的两个数应该尽量的大,而且他们的距离应该尽量大。因而在搜索的策略上就选择:从数组的前端和末尾开始搜索;在每次搜索的过程中记录面积最大值,两边沿着数组元素大的方向搜索。原理就如下图所示