PHP Tape Equilibrium
function tapeEquilibrium(array $a): int
{
$firstPart = 0;
$secondPart = array_sum($a);
$min = PHP_INT_MAX;
for ($i = 0; $i < count($a) - 1; $i++) {
$firstPart += $i;
$secondPart -= $i;
$difference = abs($firstPart - $secondPart);
$min = $difference < $min ? $difference : $min;
}
return $min;
}
This keeps left and right running sums and updates the smallest difference at each split point.