面試題31 連續子陣列的最大和

2021-06-16 16:12:44 字數 663 閱讀 2869

題目:輸入乙個整形陣列,陣列裡有正數也有負數,陣列中乙個或連續的多個整數組成乙個子陣列。求所有子陣列的和的最大值。要求時間複雜度為o(n)。例如,輸入陣列『1,-2,3,10,-4,7,2,5』和最大的子陣列微3,10,-4,7,2,因此輸出該子陣列的和18

思路:1,分析陣列規律:初始化和0,第一哥數字1,第二個-2,和為-1,-1+3=2《3,則從3開始重新計算。sum=3,訴嗎0=13;-4《0,把之前13保留下來,接著往下計算,並每次跟13比較,大於13則替換

2,動態規劃:

f(i)=pdata[i]           i=0或者f(i-1)<=0

f(i-1)+pdata[i]    i!=0並且f(i-1)>0

源**:

#include "stdio.h"

int maxsumsubarray(int *data,int len)

return great;

}void main()

; int result=maxsumsubarray(a,8);

printf("result:%d",result);

}

結果:

result:18press any key to continue

面試題31 連續子陣列的最大和

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

面試題31連續子陣列的最大和

題目 輸入乙個整型陣列,陣列裡有正數也有負數。陣列中乙個或連續的多個整數組成乙個子陣列。求所有子陣列的和的最大值。要求時間負責度為o n 看到這個題目,我們首先想到的是求出這個整型陣列所有連續子陣列的和,長度為n的陣列一共有 n n 2 2個子陣列,因此要求出這些連續子陣列的和最快也需要o n 2 ...

面試題31 連續子陣列的最大和

題目 輸入乙個整型陣列,陣列裡有正數也有負數。陣列中乙個或連續的多個整數組成乙個子陣列。求所有子陣列的和的最大值。要求時間負責度為o n 看到這個題目,我們首先想到的是求出這個整型陣列所有連續子陣列的和,長度為n的陣列一共有 n n 2 2個子陣列,因此要求出這些連續子陣列的和最快也需要o n 2 ...