首頁 >後端開發 >php教程 >最強大腦金秀賢什麼時候播 PHP求最大子序列和的演算法實現

最強大腦金秀賢什麼時候播 PHP求最大子序列和的演算法實現

WBOY
WBOY原創
2016-07-29 08:45:391122瀏覽

複製程式碼 程式碼如下:


//作者:遙遠的期待
//QQ:15624575
//演算法分析:1、必須是整數序列、2、如果整個序列不全是負數,最大子序列的第一項必須是正數,否則最大子序列後面的數加起來再加上第一項的負數,其和肯定不是最大的;3、如果整個序列都是負數,那麼最大子序列的和是0;
//全負數序列很簡單,不舉例
$arr=array(4 ,-3,5,-2,-1,2,6,-2);
function getmaxsum($arr){
$thissum=0;
$maxsum=0;
$ start=0;//記錄子序列的起始下標
$end=0;//記錄子序列的結束下標
for($i=0;$i$thissum+=$arr[$i];//取得目前子序列的和
if($thissum>$maxsum){//如果當前子序列的和大於當前最大子序列的和
$maxsum=$thissum;//改變當前最大子序列的和
$end=$i;
}else if($thissum$thissum=0;//前提這個序列不全是負數
$start=$i+1;
}
}
$parr=array($start,$end,$maxsum);
return $parr;
}
list ($start,$end,$maxsum)=getmaxsum($arr);
echo '最大子序列是:';
for($i=$start;$iecho $arr[$i].' ';
}
echo '
';
echo '最大子序列的和是'.$maxsum;
?>

以上就介紹了最強大腦金秀賢什麼時候播 PHP求最大子序列和的演算法實現,包括了最強大腦金秀賢什麼時候播方面的內容,希望對PHP教程有興趣的朋友有所幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn