数据结构-1 01-复杂度2 Maximum Subsequence Sum

时间:2020-04-06
本文章向大家介绍数据结构-1 01-复杂度2 Maximum Subsequence Sum,主要包括数据结构-1 01-复杂度2 Maximum Subsequence Sum使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
 1 #include<stdio.h>
 2 #define MAXK 10001
 3 int k,a[MAXK],dp[MAXK],start[MAXK],end[MAXK];
 4 int main(){
 5     int i,j;
 6     scanf("%d",&k);
 7     for(i=0;i<k;i++) scanf("%d",&a[i]);
 8     dp[0] = a[0];
 9     start[0] = 0;
10     end[0] = 0;
11     for(i=1;i<k;i++){
12         if(a[i]+dp[i-1]>=a[i]){
13             dp[i] = a[i]+dp[i-1];
14             start[i] = start[i-1];
15             end[i] = i;
16         }
17         else {
18             dp[i] = a[i];
19             start[i] = i;
20             end[i] = i;
21         }
22     }
23     int maxsum=dp[0],s=start[0],e=end[0];
24     for(i=1;i<k;i++){
25         if(maxsum<dp[i]){
26             maxsum = dp[i];
27             s = start[i];
28             e = end[i]; 
29         }
30     }
31     if(maxsum<0){
32         printf("%d %d %d\n",0,a[0],a[k-1]);
33     }
34     else printf("%d %d %d\n",maxsum,a[s],a[e]);
35     return 0;
36 }
View Code

最大和前面有一段是0 的话还是要把0包括在其中。

原文地址:https://www.cnblogs.com/Learn-Excel/p/12640708.html