<?php
function minMax(array $arr, int $left, int $right, &$minVal, &$maxVal) {
if ($left === $right) {
$minVal = $arr[$left];
$maxVal = $arr[$left];
} elseif (($right - $left) === 1) {
$minVal = ($arr[$left] <= $arr[$right]) ? $arr[$left] : $arr[$right];
$maxVal = ($arr[$left] <= $arr[$right]) ? $arr[$right] : $arr[$left];
} else {
$mid = (int)(($left + $right) / 2);
minMax($arr, $left, $mid, $minVal, $maxVal);
$minVal2 = null;
$maxVal2 = null;
minMax($arr, $mid + 1, $right, $minVal2, $maxVal2);
$minVal = ($minVal2 < $minVal) ? $minVal2 : $minVal;
$maxVal = ($maxVal2 > $maxVal) ? $maxVal2 : $maxVal;
}
}
$arr = [3, 1, 5, 2, 9, 7];
$left = 0;
$right = count($arr) - 1;
$minVal = null;
$maxVal = null;
minMax($arr, $left, $right, $minVal, $maxVal);
echo $minVal, "\n";
echo $maxVal, "\n";
- Output for 8.2.0 - 8.2.28, 8.3.0 - 8.3.20, 8.4.1 - 8.4.6
- 1
9
preferences:
43.69 ms | 406 KiB | 5 Q