Microsoft100 03 子陣列最大和

2021-06-20 02:00:03 字數 518 閱讀 1092

求子陣列的最大和(陣列)

題目:輸入乙個整型陣列,陣列裡有正數也有負數。

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

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

例如:輸入的陣列為1,-2,3,10,-4,7,2,-5,和最大的子陣列為3,10,-4,7,2.因此輸出為該子陣列的和18.

當我做這道題的時候,想到了看過的電影21點,裡面每個牌對結果都有乙個影響因子,+或者-。同樣的,當子陣列的和為正的時候,為後面的陣列提供的正影響因子,當時負的時候,是負影響因子,所以這時候應該捨棄負的子陣列,重新開始。再結合貪心演算法的思想。另外這裡的初值設定很是巧妙,剛開始我也沒有想到,是看了答案才改的,這樣很好的解決了都是負數的陣列情況。

**如下:

#include using namespace std;

int maxarray(int array,int size)

return max;

}void main()

; cout<

子陣列最大和

看到的乙個面試題。有很多人已經寫過,在此記下,明天給出拓展。題目 輸入乙個整型陣列,陣列裡有正數也有負數,陣列中連續的乙個或多個整數組成為子陣列,求有最大和的子陣列。要求 時間複雜度o n 如下 include using namespace std int main void int size s...

子陣列最大和

設sum i 為以第i個元素結尾且和最大的連續子陣列。假設對於元素i,所有以它前面的元素結尾的子陣列的長度都已經求得,那麼以第i個元素結尾且和最大的連續子陣列實際上,要麼是以第i 1個元素結尾且和最大的連續子陣列加上這個元素,要麼是只包含第i個元素,即sum i max sum i 1 a i a ...

子陣列最大差

給定乙個整數陣列,找出兩個不重疊 的子陣列a和b,使兩個子陣列和的差的絕對值 sum a sum b 最大。返回這個最大的差值。注意事項 子陣列最少包含乙個數 您在真實的面試中是否遇到過這個題?yes 樣例給出陣列 1,2,3,1 返回 6 挑戰 時間複雜度為o n 空間複雜度為o n 點題 不重疊...