Skip to content

Instantly share code, notes, and snippets.

@rafaelbernard
Created January 17, 2016 05:27
Show Gist options
  • Save rafaelbernard/f0fef16a8a266f38b09a to your computer and use it in GitHub Desktop.
Save rafaelbernard/f0fef16a8a266f38b09a to your computer and use it in GitHub Desktop.
<?php
// you can write to stdout for debugging purposes, e.g.
// print "this is a debug message\n";
// difference |(A[0] + A[1] + ... + A[P − 1]) − (A[P] + A[P + 1] + ... + A[N − 1])|
function solution($A) {
// write your code in PHP5.5
$n = count($A);
$minimal_diference = null;
$sufix = $A;
$prefix = array();
array_push($prefix, $sufix[0]);
array_shift($sufix);
$sum_prefix = array_sum($prefix);
$sum_sufix = array_sum($sufix);
$minimal_diference = abs($sum_sufix - $sum_prefix);
for($i = 1; $i < $n; $i++)
{
$difference = abs($sum_sufix - $sum_prefix);
//print_r($difference);
if ($difference < $minimal_diference) {
$minimal_diference = $difference;
}
if ($minimal_diference == 1) return $minimal_diference;
//$cur_value = current($sufix);
//array_shift($sufix);
$cur_value = $sufix[$i-1];
$sum_prefix += $cur_value;
$sum_sufix -= $cur_value;
}
return $minimal_diference;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment