【Leetcode】Container With Most Water (Water)
2014-10-26 08:59
369 查看
这道题是给了一大堆的高度,然后宽度为两个高度之间编号之差, 利用水桶定理求面积即可。
所以先定义左右指针,左指针指向0,右指针指向array.length-1, 然后往中间夹逼即可。
定理一: 短板定理 Area=Math.min(left, right)*(right-left)
定理二; 改善定理 当left<right时,短板一定在左边,只有移动左指针才有可能改善面积
当left>right时,短板一定在右边,只有移动右指针才有可能改善面积
面积公式如下:
width=right-left
height=Math.min(Height[left], Height[right])
area=width*height
直接上代码
所以先定义左右指针,左指针指向0,右指针指向array.length-1, 然后往中间夹逼即可。
定理一: 短板定理 Area=Math.min(left, right)*(right-left)
定理二; 改善定理 当left<right时,短板一定在左边,只有移动左指针才有可能改善面积
当left>right时,短板一定在右边,只有移动右指针才有可能改善面积
面积公式如下:
width=right-left
height=Math.min(Height[left], Height[right])
area=width*height
直接上代码
public int maxArea(int[] height) { int area = 0; int left = 0; int right = height.length - 1; while (left < right) { int currHeight = Math.min(height[left], height[right]); area = Math.max(area, (right - left) * currHeight); if (height[left] < height[right]) left++; else right--; } return area; }
相关文章推荐
- 【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_11题——Container With Most Water(两个指针)
- [LeetCode] Container With Most Water, Solution
- 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
- Container With Most Water leetcode java
- 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 Online Judge 题目C# 练习 - Container With Most Water
- [LeetCode]Container With Most Water