题意:
很多根木头插在地上,问能蓄水最大体积(图中表示为面积)。
分析:
面积考虑长宽,我们不能一边考虑过去,因为你不清楚当前这根何时丢弃。我们需要保证每根木头发挥出自己最大的功效,当底边最长,而且第二根木头的高度> 第一根木头的高度,那么此时记录完之后,可以丢弃第一根木头。 因为他的作用已经发挥到极致了。
代码:
public int maxArea(int[] height) {int l = 0, r = height.length-1;int ans = 0;while (l<=r){ans = Math.max(ans,(r-l)*(Math.min(height[l],height[r])));if(height[l] <= height[r])l++;else r--;}return ans;}