欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python語(yǔ)言描述最大連續(xù)子序列和

 更新時(shí)間:2017年12月05日 17:19:21   作者:bitcarmanlee  
這篇文章主要介紹了Python語(yǔ)言描述最大連續(xù)子序列和,具有一定借鑒價(jià)值,需要的朋友可以了解下。

求最大連續(xù)子序列的和是一個(gè)很經(jīng)典很古老的面試題了,記得在剛畢業(yè)找工作面試那會(huì)也遇到過(guò)同款問(wèn)題。今兒突然想起來(lái),正好快到畢業(yè)季,又該是苦逼的應(yīng)屆生們各種面試的時(shí)候到了,就給寫(xiě)了一些小代碼解決這個(gè)問(wèn)題。也希望各位找工作的同志們都拿到心目中理想的offer,從此以后,戰(zhàn)勝高富帥,贏取白富美,走上人生巔峰。

1.問(wèn)題描述

假設(shè)有一數(shù)組(python里為list啦)[1,3,-3,4,-6,-1],求數(shù)組中最大連續(xù)子序列的和。例如在此數(shù)組中,最大連續(xù)子序列的和為5,即1+3+(-3)+4 = 5

2.O(n2)的解法

最簡(jiǎn)單粗暴的方式,雙層循環(huán),用一個(gè)maxsum標(biāo)識(shí)最大連續(xù)子序列和。然后每次判斷更新。沒(méi)有太多可以說(shuō)的,直接上代碼

def maxSum(list):
  maxsum = list[0]
  for i in range(len(list)):
    maxtmp = 0
    for j in range(i,len(list)):
      maxtmp += list[j]
      if maxtmp > maxsum:
        maxsum = maxtmp
  return maxsum
if __name__ == '__main__':
  list = [1,3,-3,4,-6]
  maxsum = maxSum(list)
  print "maxsum is",maxsum

運(yùn)行結(jié)果

maxsum is 5

3.O(n)解法

在任何講動(dòng)態(tài)規(guī)范的地方都能找到求最大連續(xù)子序列和的例子。具體來(lái)說(shuō),假設(shè)數(shù)組為a[i],因?yàn)樽畲筮B續(xù)的子序列和必須是在位置0-(n-1)之間的某個(gè)位置結(jié)束。那么,當(dāng)循環(huán)遍歷到第i個(gè)位置時(shí),如果其前面的連續(xù)子序列和小于等于0,那么以位置i結(jié)尾的最大連續(xù)子序列和就是第i個(gè)位置的值即a[i]。如果其前面的連續(xù)子序列和大于0,則以位置i結(jié)尾的最大連續(xù)子序列和為b[i] = max{ b[i-1]+a[i],a[i]},其中b[i]就是指最大連續(xù)子序列的和。

def maxSum(list_of_nums):
  maxsum = 0
  maxtmp = 0
  for i in range(len(list_of_nums)):
    if maxtmp <= 0:
      maxtmp = list_of_nums[i]
    else:
      maxtmp += list_of_nums[i]

    if(maxtmp > maxsum):
      maxsum = maxtmp
  return maxsum
if __name__ == '__main__':
  list_of_num = [1,3,-3,4,-6]
  maxsum = maxSum(list_of_num)
  print "maxsum is: ",maxsum

運(yùn)行結(jié)果

maxsum is 5

總結(jié)

以上就是本文關(guān)于Python語(yǔ)言描述最大連續(xù)子序列和的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站:

Python生成數(shù)字圖片代碼分享

python數(shù)字圖像處理之高級(jí)濾波代碼詳解

python+mongodb數(shù)據(jù)抓取詳細(xì)介紹

如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!

相關(guān)文章

最新評(píng)論