求一个整数数组中和最大的连续子数组,例如:[1, 2, -4, 4, 10, -3, 4, -5, 1]的最大连续子数组是[4, 10, -3, 4](需写明思路,并编程实现)

求一个整数数组中和最大的连续子数组,例如:[1, 2, -4, 4, 10, -3, 4, -5, 1]的最大连续子数组是[4, 10, -3, 4](需写明思路,并编程实现)

$arr = [ 1 , 2 , -4 , 4 , 10 , -23 , 4 , -5 , 1];

$max_sum = 0;
$sum=0;
$new = [];
$i = 1;
echo '
';
foreach( $arr as $key => $value ){
    if($sum<0){
        unset($new[$i]);
        $i++;
        $sum=$value;
    }else{
        $sum+=$value;
    }
    $new[$i][] = $value;

    if($max_sum<$sum){
        $max_arr = $new;
        $max_sum=$sum;
    }

}

print_r($max_sum);
print_r($max_arr);
exit;

你可能感兴趣的:(算法)