PHP小算法一例:
<?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);
转载请注明:XAMPP中文组官网 » 求一个整数数组中和最大的连续子数组,例如:[4, -10, 210, -33, 45, -5, 22]的 最大连续子数组是[210, -33, 45, -5, 22](需写明思路,并编程实现)