/**
* 思路:使用双指针法,两个指针分别指向数组的两端,代表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;
}
盛最多水的容器 【php版】
该代码段展示了一个用双指针法解决求二维数组(高度)中能构成的最大矩形面积的问题。左右指针分别从数组两端开始,每次移动较短边的指针,并更新最大面积。算法效率较高,适用于数组数据结构。



被折叠的 条评论
为什么被折叠?



