/**
* 思路:使用双指针法,两个指针分别指向数组的两端,代表area的边界,每次取值较小的那个
* 指针向中心移动,然后计算每次移动后area的值,取最大者
* @param Integer[] $height
* @return Integer
*/
function maxArea($height) {
$left = 0;
$right = count($height) - 1;
if ($left >= $right) {
return 0;
}
$_area = PHP_INT_MIN;
while ($left < $right) {
$_area = max($_area, min($height[$left], $height[$right]) * ($right - $left));
if ($height[$left] <= $height[$right]) {
$left++;
} else {
$right--;
}
}
return $_area;
}