1. 滑动窗口
2. 双指针
例题
11. 盛最多水的容器
解法一:双指针
$$ S = H \times W=min(left_height, right_height)\times(right-left) $$
用left和right两个指针从两端向中心收缩,一边收缩一边计算[left,right]之间的矩阵面积,取最大的面积值即是答案。
移动较低的一边,那条边才有可能变高 —— 双指针
int maxArea(vector<int>& height) {
int left = 0, right = height.size()-1, ans = 0;
while(left<right){
// [left, right] 之间的矩形面积,left=right时无法构成矩形
ans = max(ans,min(height[left], height[right])*(right-left));
if(height[left]<height[right]) left++;
else right--;
}
return ans;
}
N数之和
标签:right,int,指针,height,times,left
From: https://www.cnblogs.com/gatzzzze/p/16717601.html