LeetCode OJ Container With Most Water
2015-03-25 00:57
381 查看
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.
如果j--,情况有如下两种:
1、新的height[j]比height[i]大,这是没有用的,装水面积取决于更短的height[i],而且宽度(j-i)还减少了,这样新得到的面积必然变小;
2、新的height[j]比height[i]小,这就更没用了,容器的宽度(j-i)和高度都减少了,新得到面积必然减少;
所以,当height[i] < height[j]的时候,选择i++;
反之同理。
..., 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<int> &height) { int i = 0, j = height.size() - 1, ans = 0; while (i < j) { ans = max(ans, (j - i) * min(height[i], height[j])); if (height[i] < height[j]) i++; else j--; } return ans; } };解释下,如果height[i] < height[j],为什么是i++而不是j--呢?
如果j--,情况有如下两种:
1、新的height[j]比height[i]大,这是没有用的,装水面积取决于更短的height[i],而且宽度(j-i)还减少了,这样新得到的面积必然变小;
2、新的height[j]比height[i]小,这就更没用了,容器的宽度(j-i)和高度都减少了,新得到面积必然减少;
所以,当height[i] < height[j]的时候,选择i++;
反之同理。
相关文章推荐
- Container With Most Water-Leetcode OJ Problem 11
- leetcode - Container With Most Water
- LeetCode:Container With Most Water
- LeetCode 11_Container With Most Water
- 【LeetCode】Container with Most Water
- [LeetCode] Container With Most Water 装最多水的容器
- Leetcode Container With Most Water
- leetcode Container With Most Water
- LeetCode Container With Most Water
- LeetCode (11): Container With Most Water
- LeetCode | Container With Most Water
- leetcode之11. Container With Most Water(C++解法)
- leetcode Container With Most Water
- LeetCode - Container With Most Water
- LeetCode By Scala Container With Most Water
- leetcode[11]Container With Most Water
- [leetcode] Container with most water
- LeetCode42/11 Trapping Rain Water/Container With Most Water/Hist area**
- 【leetcode】Array——Container With Most Water(11)
- LeetCode Container With Most Water