Skip to content

Instantly share code, notes, and snippets.

@KasaiMagi
Created October 4, 2012 22:04
Show Gist options
  • Save KasaiMagi/3836770 to your computer and use it in GitHub Desktop.
Save KasaiMagi/3836770 to your computer and use it in GitHub Desktop.
Equilibrium Point in an Array
<?php
function equi ( $A ) {
$countA = count($A);
$forwardSum = array();
$backwardSum = array();
for ($i = 0; $i < $countA; $i++) {
if ($i == 0) {
//$forwardSum[$i] = $A[$i];
$forwardSum[0] = 0;
} else {
$forwardSum[$i] = $forwardSum[$i - 1] + $A[$i-1];
}
}
for ($i = ($countA - 1); $i >= 0; $i--) {
if ($i == ($countA - 1)) {
//$backwardSum[$i] = $A[$i];
$backwardSum[$i] = 0;
} else {
$backwardSum[$i] = $backwardSum[$i + 1] + $A[$i+1];
}
}
$intersects = (array_intersect_assoc($forwardSum, $backwardSum));
if (count($intersects)) {
return key($intersects);
}
return -1;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment