
MaxSum of Array
By:
avtomon on
Apr 29th, 2012 | syntax:
PHP | size: 2.71 KB | hits: 20 | expires: Never
<?php
class maxArray {
static function baypassArray($array) {
$n = sizeof($array);
$sum = 0;
for ($i=0; $i<$n; $i++) {
if ($array[$i]>=0) {
if(sizeof($negar) == 2) {
if ($negar[0] > $negar[1]) {
$sum+=$array[$sumindex+1];
$sum+=$array[$i];
} else {
$sum+=$array[$sumindex+2];
$sum+=$array[$i];
}
} elseif(sizeof($negar) == 3) {
if ($negar[0] + $negar[2] > $negar[1]) {
$sum+=$array[$sumindex+1];
$sum+=$array[$sumindex+3];
} else {
$sum+=$array[$sumindex+2];
}
} else $sum+=$array[$i];
$sumindex = $i;
unset($negar);
} else {
$negar[] = $array[$i];
if(sizeof($negar)>3) {
$value = max($negar);
$index = array_search($value, $negar);
$negar2 = $negar;
unset($negar[$index]);
$value = max($negar);
$index2 = array_search($value, $negar);
if($index2>=$index) {
$index2++;
}
if ($index=0 && $index2=1) {
$new[] = $negar2[0]+$negar2[2];
$new[] = $negar2[1]+$negar2[2];
$new[] = $negar2[1]+$negar2[3];
$result = max($new);
$newindex = array_search($result, $new);
if ($newindex = 0) {
$sumindex+=1;
} else $sumindex+=2;
} elseif($index = 0 && $index2 = 3) {
$sumindex+=1;
} elseif (($index = 1 && $index2 = 2) || ($index = 1 && $index2 = 3)) {
$sumindex+=2;
} elseif($index = 2 && $index2 = 3) {
$new[] = $negar2[0]+$negar2[2];
$new[] = $negar2[1]+$negar2[2];
$new[] = $negar2[1]+$negar2[3];
$result = max($new);
$newindex = array_search($result, $new);
if ($newindex = 0) {
$sumindex+=1;
} else $sumindex+=2;
}
}
$sum+=$array[$sumindex];
unset($negar);
}
}
}
}
?>