盛水最大量---貪心演算法
阿新 • • 發佈:2019-01-23
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.
public class Solution { public int maxArea(int[] height) { int left = 0, right = height.length - 1, maxArea = 0; while(left < right){ // 每次更新最大面積(盛水量) maxArea = Math.max(maxArea,(right-left)* Math.min(height[left], height[right])); // 如果左邊較低,則將左邊向中間移一點 if(height[left] < height[right]){ left++; // 如果右邊較低,則將右邊向中間移一點 } else { right--; } } return maxArea; } }