11. Container With Most Water
2016-10-27 16:29
197 查看
贪心算法,设两个指针left和right,如果有可能使面积变大的话就更新指针向内收缩。
其实个人觉得可能不是很优……但是由于我也想不出更优的了。
一开始的想法是再设一个指针指向下限,然后判断下限是否应该移动(height[h+1/h-1]是否大于h),如果下限不移动的话判断上限是否需要移动。但是上限移动其实没有什么用……然后就涉及到很复杂的情况讨论了……还是算了……
class Solution {
public:
int maxArea(vector<int>& height) {
int left=0,right=height.size()-1;
int maxs=0;
while(left<right){
int h=min(height[left],height[right]);
maxs=max(maxs,h*(right-left));
if(height[left]<height[right]) left++;
else right--;
}
return maxs;
}
};
其实个人觉得可能不是很优……但是由于我也想不出更优的了。
一开始的想法是再设一个指针指向下限,然后判断下限是否应该移动(height[h+1/h-1]是否大于h),如果下限不移动的话判断上限是否需要移动。但是上限移动其实没有什么用……然后就涉及到很复杂的情况讨论了……还是算了……
class Solution {
public:
int maxArea(vector<int>& height) {
int left=0,right=height.size()-1;
int maxs=0;
while(left<right){
int h=min(height[left],height[right]);
maxs=max(maxs,h*(right-left));
if(height[left]<height[right]) left++;
else right--;
}
return maxs;
}
};
相关文章推荐
- LeetCode 11 Container With Most Water
- 11. Container With Most Water
- LeetCodeOJ_11_m_Container With Most Water
- leetcode 11:Container With Most Water
- 11. Container With Most Water
- LeetCode 11 Container With Most Water
- 11、Container With Most Water
- Middle-题目31:11. Container With Most Water
- 11. 盛最多水的容器 Container With Most Water
- 11. Container With Most Water
- 刷LeetCode(11)——Container With Most Water
- LeetCode11:Container With Most Water
- 11. Container With Most Water
- Container With Most Water-Leetcode OJ Problem 11
- LeetCode 11: Container With Most Water
- LeetCode11:Container With Most Water
- LeetCode-11 Container With Most Water
- 11-m-Container With Most Water
- 11. Container With Most Water
- Medium 11题 Container With Most Water