码迷,mamicode.com
首页 > 其他好文 > 详细

1.3 应用实例:最大子列和问题

时间:2019-03-03 09:28:44      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:最大   mes   printf   cst   col   using   const   return   子列   

一共讲了4个时间复杂度。

不说别的,我是对时间复杂度有了新的认识。

 

时间复杂度为n的可通过代码(在线处理算法):

从头遍历数组,加到thissum中,

thissum>maxsum则用thissum替换maxsum,

thissum<0则说明不能使结果增大,清空thissum,

最后得到正确的maxsum。

线性算法,在任何地方停止输出,算法都能给出正确结果。

但不易理解(

 1 #include<cstdio>
 2 #include<iostream>
 3 using namespace std;
 4 const int K=100000;
 5 int main(){
 6     int n;
 7     scanf("%d",&n);
 8     int a[K];
 9     for(int i=0;i<n;i++){
10         scanf("%d",&a[i]);
11     }
12     int thissum=0,maxsum=0;
13     for(int i=0;i<n;i++){
14         thissum+=a[i];
15         if(thissum>maxsum){
16             maxsum=thissum;
17         }
18         else if(thissum<0){
19             thissum=0;
20         }
21     }
22     printf("%d\n",maxsum);
23     return 0;
24 }

 

1.3 应用实例:最大子列和问题

标签:最大   mes   printf   cst   col   using   const   return   子列   

原文地址:https://www.cnblogs.com/Lynn-2019/p/10463666.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!