本文實例講述了PHP實現(xiàn)求連續(xù)子數(shù)組最大和問題2種解決方法。分享給大家供大家參考,具體如下:
問題描述
求子數(shù)組的最大和
題目描述:
輸入一個整形數(shù)組,數(shù)組里有正數(shù)也有負(fù)數(shù)。
數(shù)組中連續(xù)的一個或多個整數(shù)組成一個子數(shù)組,每個子數(shù)組都有一個和。
求所有子數(shù)組的和的最大值。要求時間復(fù)雜度為O(n)。
關(guān)于連續(xù)子數(shù)組最大和這個問題,有兩種解法,一種是動態(tài)規(guī)劃
解法如下:
function getMaxSubSum($arr){ $curSum = $arr[0]; $maxSum = $arr[0]; for($i = 1; $i count($arr); $i++){ if($curSum > 0) $curSum += $arr[$i]; else $curSum = $arr[$i]; if($curSum > $maxSum) $maxSum = $curSum; } return $maxSum; }
還有一種是掃描法
function getMaxSubSum($arr){ $curSum = 0; $maxSum = 0; for($i = 0; $i count($arr); $i++ ){ $curSum += $arr[$i]; if($curSum = 0) $curSum = 0; if($curSum > $maxSum) $maxSum = $curSum; } if($maxSum == 0){ $maxSum = $arr[0]; for($i = 1; $i count($arr); $i++){ if($maxSum $arr[$i] ) $maxSum = $arr[$i]; } } return $maxSum; }
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP數(shù)組(Array)操作技巧大全》、《PHP常用遍歷算法與技巧總結(jié)》、《php字符串(string)用法總結(jié)》、《php常用函數(shù)與技巧總結(jié)》、《PHP錯誤與異常處理方法總結(jié)》、《PHP基本語法入門教程》、《php面向?qū)ο蟪绦蛟O(shè)計入門教程》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對大家PHP程序設(shè)計有所幫助。
標(biāo)簽:佛山 定西 樂山 十堰 迪慶 六安 海南 南寧
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《PHP實現(xiàn)求連續(xù)子數(shù)組最大和問題2種解決方法》,本文關(guān)鍵詞 PHP,實現(xiàn),求,連續(xù),子,數(shù)組,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。