求子序列的和的最大值

2021-07-04 22:07:27 字數 638 閱讀 5641

求子陣列的最大和

題目:

輸入乙個整形陣列,陣列裡有正數也有負數。

陣列中連續的乙個或多個整數組成乙個子陣列,每個子陣列都有乙個和。

求所有子陣列的和的最大值。要求時間複雜度為o(n)。

例如輸入的陣列為1, -2, 3, 10, -4, 7, 2, -5,和最大的子陣列為3, 10, -4, 7, 2,

因此輸出為該子陣列的和18。

def

find

(a):

sum1 = a[0]

max1 = sum1

for i in range(1,8):

if sum1>0:

sum1 = sum1 + a[i] # 判斷前面序列的和,如果大於0就保留,繼續加下乙個數字

else:

sum1 =a[i] # 前面的序列不大於0,就捨去,從下乙個數字開始計算最大和.

if sum1>max1:

max1=sum1 # 如果計算的最大和是新的最大和,就更新最大和.這樣就忽略了後面和小於0的連續序列

return max1

a = [1,-2,3,10,-4,7,2,-5]

print find(a)

求子陣列和的最大值

題目要求 輸入乙個一維整形陣列,陣列裡有正數也有負數。一維陣列首尾相接,像個一條首尾相接帶子一樣。陣列中連續的乙個或多個整數組成乙個子陣列,每個子陣列都有乙個和。求所有子陣列的和的最大值。程式設計思路 1 首先建立乙個一維陣列a,進行資料儲存。2 定義變數,n用於求和,m為和最大值 3 開始for迴...

求子陣列的和的最大值

一 題目 輸入乙個整型陣列,陣列裡有正數也有負數。陣列中乙個或連續的多個整數組成乙個子陣列。求所有子陣列的和的最大值。要求時間複雜度為o n 例子說明 例如輸入的陣列為,和最大的子陣列為 3,10,4,7,2 因此輸出為該子陣列的和18 二 解題思路 舉例分析陣列的規律。我們試著從頭到尾逐個累加示例...

erlang 求子陣列和的最大值

前段時間修改為簡單方法 module son export son 1 son a son a,0,0 son max,sum max son head list max,sum new sum head sum,new max case new sum max of true new sum ma...