//给定一个长度为 n
的整数数组 height
。有 n
条垂线,第 i
条线的两个端点是 (i, 0)
和 (i, height[i])
。
找出其中的两条线,使得它们与 x
轴共同构成的容器可以容纳最多的水。
返回容器可以储存的最大水量。
说明:你不能倾斜容器。
//class Solution { public int maxArea(int[] height) { int l = 0, r = height.length - 1; int maxArea = 0; while (l < r) { int area = (r - l) * Math.min(height[l], height[r]); int minH = Math.min(height[l], height[r]); maxArea = Math.max(maxArea, area); while (height[l] <= minH && l < r) { l++; } while (height[r] <= minH && l < r) { r--; } } return maxArea; } }
//思路:从最左和最右开始,每次选出两个中的最小高度,往后遍历的过程中直接跳过高度小于minheight的线,直到出现大于minheight的线才有可能得到更大的容器.
标签:容器,盛水,int,minheight,height,maxArea,Math From: https://www.cnblogs.com/zzzzzzx/p/17142113.html