# 1 题目
盛最多水的容器 - 盛最多水的容器 - 力扣(LeetCode) (leetcode-cn.com)
2 思路
1 数据处理:
采用双指针对数组进行遍历,指针移动的原则是高度小的指针移向高度大的指针。
2 数据输出:
若数组的长度小于2,则返回-1(错误)
若数组的长度大于2 ,则返回输出值。
3 代码
#define max(a,b) (a>b)?a:b
#define min(a,b) (a<b)?a:b
int maxArea(int* height, int heightSize){
if(heightSize<2) return -1;
int left=0,right=heightSize-1,area=0;
while(left<right){
int h=min(height[left],height[right]);
area=max(area,h*(right-left)); //存储所有面积中最大值
if(height[left]<height[right]) left++; //遍历完最大高度
else right--;
}
return area;
}
}
return area;
}