在乙個陣列中找出和最大的連續幾個數。(至少包含乙個數)
例如:陣列a = [−2, 1, −3, 4, −1, 2, 1, −5, 4],則連續的子串行[4,−1,2,1]有最大的和6.
輸入格式
第一行輸入乙個不超過1000的整數n。
第二行輸入n個整數a[i]。
輸出格式
第一行輸出乙個整數,表示最大的和。
樣例輸入
3
1 1 -2
樣例輸出
2
#includeint main()
{ int sum=0,max=0;
int n;
scanf("%d",&n);
int a[n];
for(int i=0;i想了半天也沒想到怎麼做,參考了別人的做法,我實在有點不開竅。
思路:用max儲存當前陣列計算出的最大值,不斷往子陣列裡面增加新的數。如果沒有超過最大值,那麼最大值就是最大,如果超過,更新最大值。如果加新的數的時候發現sum<0了,那麼重新開始。(因為sum<0只能給後續帶來傷害而沒有幫助)
最大子陣列 計蒜客
在乙個陣列中找出和最大的連續幾個數。至少包含乙個數 例如 陣列a 2,1,3,4,1,2,1,5,4 則連續的子串行 4,1,2,1 有最大的和6.輸入格式 第一行輸入乙個不超過1000的整數n。第二行輸入n個整數a i 輸出格式 第一行輸出乙個整數,表示最大的和。樣例輸入 3 1 1 2 貪心思路...
計蒜客 最大子陣列
在乙個陣列中找出和最大的連續幾個數。至少包含乙個數 例如 陣列a 2,1,3,4,1,2,1,5,4 則連續的子串行 4,1,2,1 有最大的和6.輸入格式 第一行輸入乙個不超過1000的整數n。第二行輸入n個整數a i 輸出格式 第一行輸出乙個整數,表示最大的和。樣例輸入 3 1 1 2樣例輸出 ...
計蒜客 最大子陣列
在乙個陣列中找出和最大的連續幾個數。至少包含乙個數 例如 陣列a 2,1,3,4,1,2,1,5,4 則連續的子串行 4,1,2,1 有最大的和6.輸入格式 第一行輸入乙個不超過1000的整數n。第二行輸入n個整數a i 輸出格式 第一行輸出乙個整數,表示最大的和。樣例輸入 3 1 1 2樣例輸出 ...