最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP求最大子序列和的算法實現(xiàn)

 更新時間:2011年06月24日 22:23:44   作者:  
給定整數(shù):A1 A2 A3 A4 … An,其中可能有負(fù)數(shù),求Ai-Aj的和的最大值。
復(fù)制代碼 代碼如下:

<?php
//作者:遙遠的期待
//QQ:15624575
//算法分析:1、必須是整數(shù)序列、2、如果整個序列不全是負(fù)數(shù),最大子序列的第一項必須是正數(shù),否則最大子序列后面的數(shù)加起來再加上第一項的負(fù)數(shù),其和肯定不是最大的;3、如果整個序列都是負(fù)數(shù),那么最大子序列的和是0;
//全負(fù)數(shù)序列很簡單,不舉例
$arr=array(4,-3,5,-2,-1,2,6,-2);
function getmaxsum($arr){
$thissum=0;
$maxsum=0;
$start=0;//記錄子序列的起始下標(biāo)
$end=0;//記錄子序列的結(jié)束下標(biāo)
for($i=0;$i<count($arr);$i++){
$thissum+=$arr[$i];//取得當(dāng)前子序列的和
if($thissum>$maxsum){//如果當(dāng)前子序列的和大于當(dāng)前最大子序列的和
$maxsum=$thissum;//改變當(dāng)前最大子序列的和
$end=$i;
}else if($thissum<0){//如果當(dāng)前子序列的和小于0,則把下一個元素值假定為最大子序列的第一項,這里可以保證最大自序列的第一項一定是正數(shù)
$thissum=0;//前提這個序列不全是負(fù)數(shù)
$start=$i+1;
}
}
$parr=array($start,$end,$maxsum);
return $parr;
}
list($start,$end,$maxsum)=getmaxsum($arr);
echo '最大子序列是:';
for($i=$start;$i<=$end;$i++){
echo $arr[$i].' ';
}
echo '<br>';
echo '最大子序列的和是'.$maxsum;
?>

相關(guān)文章

最新評論

蓬溪县| 南岸区| 惠来县| 湘乡市| 双鸭山市| 济南市| 汨罗市| 天水市| 白银市| 汉阴县| 安平县| 榆树市| 孟村| 大连市| 仪陇县| 平顶山市| 芒康县| 洛宁县| 龙南县| 威宁| 抚州市| 馆陶县| 平山县| 尚义县| 香河县| 泗阳县| 三亚市| 博兴县| 鄂托克旗| 麻江县| 沽源县| 长阳| 仁寿县| 泌阳县| 观塘区| 芒康县| 卓资县| 南陵县| 临城县| 中牟县| 黎川县|