国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

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

2024-05-04 23:18:07
字體:
來源:轉載
供稿:網友

復制代碼 代碼如下:


<?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;
?>

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 长岛县| 西林县| 黑龙江省| 乐业县| 华坪县| 孝昌县| 兰坪| 临夏县| 保靖县| 平度市| 伽师县| 武义县| 清新县| 大埔区| 聂荣县| 南通市| 克什克腾旗| 江城| 汶上县| 铜鼓县| 宿松县| 色达县| 连州市| 六枝特区| 麟游县| 北宁市| 邵东县| 云林县| 塔河县| 安新县| 滁州市| 桓台县| 济阳县| 闻喜县| 阜新市| 桑日县| 堆龙德庆县| 洛宁县| 通河县| 长岛县| 石嘴山市|