C語言 · 和最大子序列


算法提高 和最大子序列  
時間限制:1.0s   內存限制:512.0MB
    
問題描述
  對於一個給定的長度為N的整數序列A,它的“子序列”的定義是:A中非空的一段連續的元素(整數)。你要完成的任務是,在所有可能的子序列中,找到一個子序列,該子序列中所有元素的和是最大的(跟其他所有子序列相比)。程序要求你輸出這個最大值。
輸入格式
  輸入文件的第一行包含一個整數N,第二行包含N個整數,表示A。
  其中
  1 <= N <= 100000
  -10000 <= A[i] <=  10000
輸出格式
  輸出僅包含一個整數,表示你算出的答案。
樣例輸入
5
3 -2 3 -5 4

樣例輸出

4

 

 1 #include<stdio.h>
 2 int main(){
 3     int n;
 4     int maxsum=0;
 5     int sum=0;
 6     scanf("%d",&n);
 7     int a[n];
 8     for(int i=0;i<n;i++){
 9         scanf("%d",&a[i]);
10     }
11     for(int i=0;i<n;i++){
12         sum+=a[i];
13         if(sum>maxsum){
14             maxsum = sum;
15         }else{
16             sum=0;
17         }
18     }
19     printf("%d",maxsum);
20     return 0;
21 }

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM