文章作者:Tyan
博客:noahsnail.com | 优快云 | 简书
1. Description

2. Solution
- Brute Force
class Solution {
public:
int maxArea(vector<int>& height) {
int length = height.size();
int maxArea = 0;
int area = 0;
for(int i = 0; i < length; i++) {
for(int j = i + 1; j < length; j++) {
area = (j - i) * (height[i]<height[j]?height[i]:height[j]);
if(maxArea < area) {
maxArea = area;
}
}
}
return maxArea;
}
};
- Two Pointer Approach
class Solution {
public:
int maxArea(vector<int>& height) {
int i = 0;
int j = height.size() - 1;
int maxArea = 0;
int area = 0;
while(i < j) {
area = (j - i) * (height[i]<height[j]?height[i]:height[j]);
if(maxArea < area) {
maxArea = area;
}
height[i]<height[j]?i++:j--;
}
return maxArea;
}
};

本文介绍了LeetCode上经典问题“容器盛最多水”的两种解决方案:暴力法和双指针法。通过对比这两种方法,读者可以了解到如何从低效的遍历优化到高效的两头逼近策略。
1110

被折叠的 条评论
为什么被折叠?



