色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

PHP求最大子序列和的算法實現

復制代碼 代碼如下:
<?php
//作者:遙遠的期待
//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<count($arr);$i++){
$thissum+=$arr[$i];//取得當前子序列的和
if($thissum>$maxsum){//如果當前子序列的和大于當前最大子序列的和
$maxsum=$thissum;//改變當前最大子序列的和
$end=$i;
}else if($thissum<0){//如果當前子序列的和小于0,則把下一個元素值假定為最大子序列的第一項,這里可以保證最大自序列的第一項一定是正數
$thissum=0;//前提這個序列不全是負數
$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;
?>

php技術PHP求最大子序列和的算法實現,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 蛟河市| 唐河县| 信丰县| 托克逊县| 大安市| 吉首市| 同仁县| 鲜城| 巩留县| 屏山县| 克拉玛依市| 武平县| 樟树市| 伽师县| 灵川县| 海淀区| 龙川县| 三都| 闽清县| 六安市| 绿春县| 吉木萨尔县| 镇江市| 西峡县| 大竹县| 乌鲁木齐县| 岫岩| 山阳县| 改则县| 洛扎县| 咸宁市| 华安县| 安吉县| 平远县| 博爱县| 边坝县| 梁山县| 平谷区| 德兴市| 高要市| 镇安县|