Python語(yǔ)言描述最大連續(xù)子序列和
求最大連續(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ù)字圖像處理之高級(jí)濾波代碼詳解
python+mongodb數(shù)據(jù)抓取詳細(xì)介紹
如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!
相關(guān)文章
一起解密Python中的*args和**kwargs無(wú)限可能的函數(shù)參數(shù)
這篇文章主要來(lái)跟大家一起解密Python中的*args和**kwargs無(wú)限可能的函數(shù)參數(shù)使用的靈活性,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06Pandas對(duì)每個(gè)分組應(yīng)用apply函數(shù)的實(shí)現(xiàn)
這篇文章主要介紹了Pandas對(duì)每個(gè)分組應(yīng)用apply函數(shù)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12Pygame實(shí)戰(zhàn)之檢測(cè)按鍵正確的小游戲
這篇文章主要為大家介紹了利用Pygame模塊實(shí)現(xiàn)的檢測(cè)按鍵正確的小游戲:每個(gè)字母有10秒的按鍵時(shí)間,如果按對(duì),則隨機(jī)產(chǎn)生新的字符,一共60s,如果時(shí)間到了,則游戲結(jié)束??靵?lái)跟隨小編一起學(xué)習(xí)一下吧2021-12-12tensorflow+k-means聚類簡(jiǎn)單實(shí)現(xiàn)貓狗圖像分類的方法
這篇文章主要介紹了tensorflow+k-means聚類簡(jiǎn)單實(shí)現(xiàn)貓狗圖像分類,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-04-04使用python連接Linux服務(wù)器發(fā)送指定命令的示例代碼
這篇文章主要介紹了使用python連接Linux服務(wù)器發(fā)送指定命令,首先安裝paramiko庫(kù),使用paramiko庫(kù)連接linux,使用paramiko庫(kù)上傳下載文件,結(jié)合示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-10-10Python+Opencv實(shí)現(xiàn)把圖片、視頻互轉(zhuǎn)的示例
這篇文章主要介紹了Python+Opencv實(shí)現(xiàn)把圖片、視頻互轉(zhuǎn)的示例,幫助大家更好的理解和實(shí)用python,感興趣的朋友可以了解下2020-12-12Python基礎(chǔ)之函數(shù)嵌套知識(shí)總結(jié)
今天帶大家回顧python基礎(chǔ)知識(shí),文中對(duì)Python函數(shù)嵌套作了非常詳細(xì)的知識(shí)總結(jié),對(duì)正在學(xué)習(xí)python基礎(chǔ)的小伙伴們很有幫助,需要的朋友可以參考下2021-05-05pytorch lstm gru rnn 得到每個(gè)state輸出的操作
這篇文章主要介紹了pytorch lstm gru rnn 得到每個(gè)state輸出的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-05-05