1つの整数の配列と最大の連続するサブ配列を求めて、例えば:[4,-10,210,-33,45,-5,22]の最大の連続するサブ配列は[210,-33,45,-5,22](構想を明記して、そしてプログラミングして実現する必要があります)
PHP小アルゴリズムの一例:
function getMaxSubArr(array $arr) {
$c = count($arr);
$mckArr = []; // ( ) ( )
for ($i = 0; $i < $c; $i++):
$ck = ""; //
$subSum = 0; //
for ($j = $i; $j < $c; $j++){
$ck .= $j == $i ? $j : "," . $j;
$subSum += $arr[$j];
$mckArr[$ck] = $subSum;
}
endfor;
$mck = explode(",", array_search(max($mckArr), $mckArr)); //
$res = []; //
foreach ($mck as $k => $v) {
$res[] = $arr[$v]; //
}
return $res;
}
$arr = [4, -10, 210, -33, 45, -5, 22];
$res = getMaxSubArr($arr);
var_dump($res);