欢迎光临
我们一直在努力

力扣第11题C++盛最多水的容器

题目

题解

暴力解

int maxArea(vector<int>& height) {
int n = height.size();
int max = 0;
for (int i = 0; i < n; i++) {
for (int j = i + 1; j < n; j++) {
int area = std::min(height[i], height[j]) * (j – i);
max = std::max(area, max);
}
}
return max;
}

双指针

class Solution {
public:
int maxArea(vector<int>& height) {
int max = 0;
int l = 0,r = height.size()-1;//两个指针
while(l < r){
int area = std::min(height[l],height[r]) * (r-l);
max = std::max(max,area);

//短的向长的移动
if(height[l] < height[r]) l++;
else r–;
}
return max;
}
};

赞(0)
未经允许不得转载:171主机测评 » 力扣第11题C++盛最多水的容器
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址