求一个整数数组中和最大的连续子数组,例如:[1, 2, -4, 4, 10, -3, 4, -5, 1]的最大连续子数组是[4, 10, -3, 4](需写明思路,并编程实现)
代码如下:
$arr = [1, 2, -4, 4, 10, -3, 4, -5, 1];
$max_sum = 0;
$sum=0;
$new = [];
$i = 1;
echo '<pre/>';
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);
echo "<br>";
print_r($max_arr);
exit;
15
Array
(
[2] => Array
(
[0] => 4
[1] => 10
[2] => -3
[3] => 4
)
)