演算法題 求陣列中 連續子陣列最大和

2021-08-20 11:16:07 字數 849 閱讀 3831

[程式設計題]連續最大和

乙個陣列有 n 個元素,求連續子陣列的最大和。 例如:[-1,2,1],和最大的連續子陣列為[2,1],其和為 3

輸入描述:

輸入為兩行。 第一行乙個整數n(1 <= n <= 100000),表示一共有n個元素 第二行為n個數,即每個元素,每個整數都在32位int範圍內。以空格分隔。

輸出描述:

所有連續子陣列中和最大的值。
示例1

輸入

3 -1 2 1
輸出

3
思路:傳入陣列後,將陣列split()分割後放入map中,然後開始迭代全部資料,不斷累加並賦值給themax()臨時記錄最大值),當累加結果》=0時正常累加,反之直接用下一元素覆蓋之前的累加結果,每次累加值變動後都與之前臨時記錄的最大值進行比較,如果大與之前的便替換之,知道迭代結束

python

while

true:

try:

num=input() #第一行輸入傳入的陣列中元素總數

tmp=list(map(int,input().split())) #第二行輸入陣列放入map中

total,themax=0,tmp[0]

for cur in tmp:

if total>=0:

total+=cur

else:

total=cur

if total>themax:

themax=total

print(themax)

except:

break

求陣列中連續子陣列的最大和

思路 計算出任意i到j之間連續子陣列的和再比較必然能得到最大值,但時間複雜度為o n 2 我們希望能找出線性時間的演算法。我們注意到,假如陣列中全為正數,那麼最大和必然為全部數相加 如果陣列中有負數,並且如果加上某個負數,子陣列的和小於0,則最大和子陣列必然不包含這個負數。基於此,給出以下 incl...

最大和連續子陣列

問題描述 乙個數值型陣列,其子陣列有多個,求其子陣列中最大的和值。所謂和值,是指數組所有元素相加的和。解法 1 掃瞄法,維護max變數,儲存最大和,其初始值為data 0 假設最大和子陣列的第一位下標為i,i從0到n 1,對於每個i值,從data i 開始,進行累加,每加乙個數,與max變數比較一次...

連續子陣列最大和

hz偶爾會拿些專業問題來忽悠那些非計算機專業的同學。今天測試組開完會後,他又發話了 在古老的一維模式識別中,常常需要計算連續子向量的最大和,當向量全為正數的時候,問題很好解決。但是,如果向量中包含負數,是否應該包含某個負數,並期望旁邊的正數會彌補它呢?例如 連續子向量的最大和為8 從第0個開始,到第...