本文共 1794 字,大约阅读时间需要 5 分钟。
问题: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.
解答:
代码:
class Solution {public: int maxArea(vector &height) { int lh,rh; int i,j; int temp,min; int area = 0; i = 0; j = height.size()-1; while(i < j) { if(height[i] < height[j]) { temp = height[i]*(j-i); ++i; } else { temp = height[j]*(j-i); --j; } if(temp > area) area = temp; } return area; }};代码:
public class Solution { public int maxArea(int[] height) { int i, j, lh, rh, area, tmp, len = height.length; lh = height[0]; rh = height[len - 1]; area = 0; i = 0; j = len - 1; while (i < j) { tmp = Math.min(lh, rh) * (j - i); if (tmp > area) { area = tmp; } if (lh < rh) { while (i < j && height[i] <= lh) { i ++; } if (i < j) { lh = height[i]; } } else { while (i < j && height[j] <= rh) { j --; } if (i < j) { rh = height[j]; } } } return area; } }
转载地址:http://cktsi.baihongyu.com/