主頁(yè) > 知識(shí)庫(kù) > PHP實(shí)現(xiàn)求連續(xù)子數(shù)組最大和問題2種解決方法

PHP實(shí)現(xiàn)求連續(xù)子數(shù)組最大和問題2種解決方法

熱門標(biāo)簽:Mysql連接數(shù)設(shè)置 電子圍欄 阿里云 團(tuán)購(gòu)網(wǎng)站 服務(wù)器配置 科大訊飛語(yǔ)音識(shí)別系統(tǒng) Linux服務(wù)器 銀行業(yè)務(wù)

本文實(shí)例講述了PHP實(shí)現(xiàn)求連續(xù)子數(shù)組最大和問題2種解決方法。分享給大家供大家參考,具體如下:

問題描述

求子數(shù)組的最大和

題目描述:

輸入一個(gè)整形數(shù)組,數(shù)組里有正數(shù)也有負(fù)數(shù)。
數(shù)組中連續(xù)的一個(gè)或多個(gè)整數(shù)組成一個(gè)子數(shù)組,每個(gè)子數(shù)組都有一個(gè)和。
求所有子數(shù)組的和的最大值。要求時(shí)間復(fù)雜度為O(n)。

關(guān)于連續(xù)子數(shù)組最大和這個(gè)問題,有兩種解法,一種是動(dòng)態(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錯(cuò)誤與異常處理方法總結(jié)》、《PHP基本語(yǔ)法入門教程》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《php+mysql數(shù)據(jù)庫(kù)操作入門教程》及《php常見數(shù)據(jù)庫(kù)操作技巧匯總》

希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。

您可能感興趣的文章:
  • PHP判斷一個(gè)數(shù)組是另一個(gè)數(shù)組子集的方法詳解
  • PHP獲取數(shù)組最大值下標(biāo)的方法
  • PHP查找數(shù)值數(shù)組中不重復(fù)最大和最小的10個(gè)數(shù)的方法
  • php獲取數(shù)組中鍵值最大數(shù)組項(xiàng)的索引值
  • php求正負(fù)數(shù)數(shù)組中連續(xù)元素最大值示例
  • 求PHP數(shù)組最大值,最小值的代碼
  • php數(shù)組函數(shù)序列之a(chǎn)rray_sum() - 計(jì)算數(shù)組元素值之和
  • php計(jì)算數(shù)組相同值出現(xiàn)次數(shù)的代碼(array_count_values)
  • php計(jì)算多維數(shù)組中所有值總和的方法
  • PHP計(jì)算數(shù)組中值的和與乘積的方法(array_sum與array_product函數(shù))
  • php常用數(shù)組array函數(shù)實(shí)例總結(jié)【賦值,拆分,合并,計(jì)算,添加,刪除,查詢,判斷,排序】
  • PHP數(shù)組操作實(shí)例分析【添加,刪除,計(jì)算,反轉(zhuǎn),排序,查找等】

標(biāo)簽:江蘇 廣元 大理 衡水 蚌埠 棗莊 萍鄉(xiāng) 衢州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《PHP實(shí)現(xiàn)求連續(xù)子數(shù)組最大和問題2種解決方法》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266