和最大子串行

2021-09-02 22:05:59 字數 836 閱讀 4974

時間限制: 1 sec  記憶體限制: 512 mb

提交: 258  解決: 148

[提交] [狀態] [討論版] [命題人:外部匯入]

題目描述

對於乙個給定的長度為n的整數序列a,它的「子串行」的定義是:a中非空的一段連續的元素(整數)。你要完成的任務是,在所有可能的子串行中,找到乙個子串行,該子串行中所有元素的和是最大的(跟其他所有子串行相比)。程式要求你輸出這個最大值。 

輸入輸入檔案的第一行包含乙個整數n,第二行包含n個整數,表示a。 

其中 1<=n<=100000 

-10000<=a[i]<=10000

輸出輸出僅包含乙個整數,表示你算出的答案。

樣例輸入

5

3 -2 3 -5 4

樣例輸出

4
演算法提高

思路 :

找出序列中所有的連續的非負數序列,分別計算它們的和,找出和最大的乙個序列,輸出這個序列的和

1.用陣列a[n]儲存輸入的序列

2.若該序列全為負數,輸出序列中最大的數

3.否則,以陣列中的負數為邊界,將該序列劃分為若干非負子串行,計算每個非負子串行的和,存入陣列b[n]

4:輸出陣列b[n]中最大的數

#include

int main()

else

}int max2=b[0];

for(int i=0;imax2)  max2=b[i];

printf("%d\n",max2);

}            

return 0;

}

和最大子串行

問題描述 第一行輸入乙個正整數n 1 n 100001 第二行輸入n個整數a 0 a 10000 求該組整數子串行最大的和。解決這個問題應該考慮輸入n較大的情況,也就是說,輸入100000個數字判斷它的和最大子串行應當也能很快地算出來。我看過很多求解的 有三重for迴圈的,有兩重for迴圈的,也有使...

最大子串行和

最大子串行是要找出由數組成的一維陣列中和最大的連續子串行。比如的最大子串行就是 它的和是8,達到最大 而 的最大子串行是,它的和是6。找最大子串行的方法很簡單,只要前i項的和還沒有小於0那麼子串行就一直向後擴充套件,否則丟棄之前的子串行開始新的子串行,同時我們要記下各個子串行的和,最後找到和最大的子...

和最大子串行

時間限制 1 sec 記憶體限制 512 mb 提交 3 解決 3 提交 狀態 討論版 對於乙個給定的長度為n的整數序列a,它的 子串行 的定義是 a中非空的一段連續的元素 整數 你要完成的任務是,在所有可能的子串行中,找到乙個子串行,該子串行中所有元素的和是最大的 跟其他所有子串行相比 程式要求你...