004 双指针——盛最多水的容器
·
一、题目描述



二、算法原理
解法一:暴力枚举 超时
解法二:利用单调性,使用双指针来解决,时间复杂度O(n)
三、代码实现
class Solution
{
public:
int maxArea(vector<int>& height)
{
int left = 0,right = height.size()-1,ret = 0;
while(left < right)
{
int v = min(height[left],height[right]) * (right - left);;
ret = max(ret,v);
//移动指针,谁小移动谁
if(height[left]<height[right]) left++;
else right--;
}
return ret;
}
};更多推荐




所有评论(0)