題目:輸入乙個整形陣列,陣列裡有正數也有負數,陣列中乙個或連續的多個整數組成乙個子陣列。求所有子陣列的和的最大值。要求時間複雜度為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 ...