盛最多水的容器 - 盛最多水的容器 - 力扣(LeetCode) (leetcode-cn.com)
采用双指针对数组进行遍历,指针移动的原则是高度小的指针移向高度大的指针。
若数组的长度小于2,则返回-1(错误)
若数组的长度大于2 ,则返回输出值。
#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;
}