求N个数组成的序列a[1],a[2],a[3],…,a[n],序列中连续子段的和的最大值,例如
-2,11,-4,13,-5,-2 的最大子段是 11,-4,13 和为20
尝试着双重循环一下 代码如下
<?
php
$array=
array(-2,11,-4,13,-5,-2
);
function find_son_set(
$array)
{
$length=
count(
$array);
foreach (
$array as $key =>
$value)
{
for (
$i=
$key+1;
$i <
$length;
$i++
)
{
$tmp_arr=
array_slice(
$array,
$key,
$i-
$key);
$implode=
implode(",",
$tmp_arr);
$list[
$implode]=
array_sum(
$tmp_arr);
}
}
arsort(
$list);
return array("son"=>
key(
$list),"sum"=>
current(
$list));
}
var_dump(find_son_set(
$array));
效果如图
双重循环 简单粗暴,哈哈哈(尴尬中透漏着一股悲哀)
转载于:https://www.cnblogs.com/lizhaoyao/p/9596490.html