|
php實(shí)現(xiàn)正負(fù)數(shù)數(shù)組最大子序列,要求給出數(shù)組,該數(shù)組由正負(fù)數(shù)字組成,找出該數(shù)組中連續(xù)元素組成的子數(shù)組的最大值。
這其實(shí)得算是個(gè)背包變種吧。
復(fù)制代碼 代碼如下:
<?php
$list = array(1,-3,-5,-7,8,9,-11,5);
$cur = 0;
$term = 0;
$res = 0;
$begin = 0;
foreach($list as $k => $v){
$cur += $v;
if($cur < 0){
$cur = 0;
$begin = $k + 1;
}
if($cur > $res){
$res = $cur;
$term = $k;
}
}
$max_seq = array_slice($list, $begin, ($term - $begin) + 1);
echo $res . ',';
print_r($max_seq);
//17,Array ( [0] => 8 [1] => 9 )
php技術(shù):php求正負(fù)數(shù)數(shù)組中連續(xù)元素最大值示例,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。