思路:
利用双指针法进行移动,一个在头一个在尾,此时宽度最宽,当宽度缩小时,高度发生变化,从而可以找到最大值。
代码:
int maxArea(int* height, int heightSize)
{int* left = height;int* right = (height + heightSize - 1);int area = 0;int maxArea = -1;while (left < right){int min = *left > *right ? *right : *left;//找高度最小值area = min * (right - left);if (area > maxArea){maxArea = area;//找面积最大值}if (*left > *right){right--;}else{left++;}}return maxArea;
}