华南俳烁实业有限公司

python

當(dāng)前位置:中華考試網(wǎng) >> python >> python編程基礎(chǔ) >> 文章內(nèi)容

如何求數(shù)組連續(xù)最大和

來(lái)源:中華考試網(wǎng)  [2020年11月3日]  【

  遇到這個(gè)問(wèn)題的小伙伴請(qǐng)不要慌張,下面小編將通過(guò)一組實(shí)例代碼,幫助大家求出最大和,一起來(lái)看下吧~

  我們可以維護(hù)兩個(gè)空間,一個(gè)空間用于計(jì)算每個(gè)能夠連續(xù)的最大和,而另外一個(gè)用于存儲(chǔ)最大的和。

  代碼如下:

  def arrsum(arr):

  arrlength=len(arr)

  S=[None]*arrlength#記錄連續(xù)的計(jì)算和

  MS=[None]*arrlength#記錄最大的和

  S[0]=arr[0]

  MS[0]=arr[0]

  i=1

  while i

python課程免費(fèi)試聽(tīng)預(yù)約

  • 地區(qū):
  • 姓名:
  • 手機(jī):

  S[i]=max(S[i-1]+arr[i],arr[i])

  MS[i]=max(MS[i-1],S[i])

  i+=1

  return MS[arrlength-1]

  if __name__=="__main__":

  arr=[1,-2,4,8,-4,7,-1,-5]

  data=sum=arrsum(arr)

  print(data)

  還可以不維護(hù)空間,而是直接計(jì)算最大值:

  def arrsum(arr):

  arrlength=len(arr)

  #S=[None]*arrlength#記錄連續(xù)的計(jì)算和

  #MS=[None]*arrlength#記錄最大的和

  #S[0]=arr[0]

  #MS[0]=arr[0]

  S=arr[0]

  MS=arr[0]

  i=1

  while i

  S=max(S+arr[i],arr[i])

  MS=max(MS,S)

  i+=1

  return MS

  if __name__=="__main__":

  arr=[1,2,3,-4]

  data=sum=arrsum(arr)

  print(data)

  是不是非常簡(jiǎn)單?直接套用就可以得到問(wèn)題結(jié)果了哦~

責(zé)編:fushihao
  • 會(huì)計(jì)考試
  • 建筑工程
  • 職業(yè)資格
  • 醫(yī)藥考試
  • 外語(yǔ)考試
  • 學(xué)歷考試
本溪| 西乡县| 南漳县| 临澧县| 攀枝花市| 南岸区| 商城县| 勃利县| 贵阳市| 汉源县| 西乌| 华坪县| 六安市| 昌宁县| 阜宁县| 达州市| 焉耆| 颍上县| 吉首市| 克拉玛依市| 宁海县| 陆河县| 望城县| 达孜县| 丁青县| 四会市| 衡山县| 区。| 耒阳市| 怀集县| 岳阳县| 延庆县| 呼图壁县| 和静县| 连江县| 大同市| 杨浦区| 东乡县| 高密市| 隆昌县| 高阳县|