双指针
双指针这个用法还不少,还有常见的快慢指针,具体什么时候用我还没总结出来
- 盛最多水的容器
思路就是利用两个指针,一个从左,一个从右,向中间遍历,来求得最大面积
class Solution {
public:
int less(vector<int> &height,int l,int r){
return height[l]<=height[r] ?height[l]:height[r] ;
}
int maxArea(vector<int>& height) {
int l=0,r=height.size()-1;
int max=(r-l)*less(height,l,r);
while(l<r){
if(height[l]<=height[r]){
l++;
int tmp=(r-l)*less(height,l,r);
if(tmp>max) max=tmp;
}else{
r--;
int tmp=(r-l)*less(height,l,r);
if(tmp>max) max=tmp;
}
}
return max;
}
};