题解 | #装最多水的容器#
装最多水的容器
http://www.nowcoder.com/practice/c97c1400a425438fb130f54fdcef0c57
方法1:暴力解法:
class Solution { public: int maxArea(vector<int>& height) { int max = 0; for(int i =0; i<height.size(); i++) { for (int j="i+1;j" < height.size(); j++){ int h="min(height[i]," height[j]); if(h*(j-i)> max) max = h*(j-i); } } return max; } };
方法2:
有人说水的最大体积由最长木板决定,只有移动短的木板那头,才有可能使得水
的体积变大。好像称作双指针。
public int maxArea (int[] height) { if(height == null || height.length < 2)return 0; int max = 0; int n = height.length; int i = 0,j = n - 1; while(i < j){ int maxArea = (j - i) * Math.min(height[i],height[j]); max = Math.max(max,maxArea); if(height[i] < height[j]){ i++; } else { j--; } } return max; }