
分析题目
-
哈哈哈,灵神的思路和我一样
-
这个盛最多水本质上是找出长尽可能长,高尽可能高的长方形
-
所以我们就先控制一个长,使其最长,一个在左,一个在右,这个时候底边长最长
-
之后我们就在底边长最长的情况下,去寻找高尽可能高的情况
-
如果移动高的那条边,长度一定下降,高度可能下降,新的长方形,肯定比原来的面积更小。
如果移动低的那条边,长度一定下降,高度可能升高,新的长方形,可能比原来的面积更大。
所以我们就移动短的那条边 -
因此我们就可以得出代码
//感觉可以暴力解决 int left=0,right=height.length-1; int max = -1; while(left<right){ int area=0; area= Math.min(height[right],height[left])*(right-left); if(area>max){ max=area; } if(height[right]>height[left]){ left++; }else right--; } return max;
-

被折叠的 条评论
为什么被折叠?



