php实现:
function get_max_value($arr) {
$max_sum=0;//最大的值
$max_start=0;//和最大子数组开始下标
$max_end=0;//和最大的子数组结束下标
$length=count($arr)-1;//数组最大下标
for ($i=0;$i<=$length;$i++){
$sum=0;//初始化
for ($j=$i;$j<=$length;$j++){
$sum+=$arr[$j];
if ($sum>$max_sum){
$max_sum=$sum;
$max_start=$i;
$max_end=$j;
}
}
}
return array_slice($arr, $max_start, ($max_end-$max_start+1));//返回结果数组
}
$test = [1, 2, -4, 4, 10, -3, 4, -5, 1];
$x = get_max_value($test);
var_dump($x);
--------------------------------------------------分割线------------------------------------------------------
输出结果为: array(4) { [0]=> int(4) [1]=> int(10) [2]=> int(-3) [3]=> int(4) }