标签:最大 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 }
标签:最大 mes printf cst col using const return 子列
原文地址:https://www.cnblogs.com/Lynn-2019/p/10463666.html