问题标题: 酷町堂:帮帮我吧16分!!!(在网址里答题,同样给)

0
1
已解决
汪宇航
汪宇航
新手启示者
新手启示者

https://wenda.codingtang.com/questions/11837/

汪宇航在2021-02-04 13:40:25追加了内容

#include <iostream>

using namespace std;

int n,a[1000000],cnt=0,cnt1,maxn=0,b[1000000];

int main(){

cin>>n;

for(int i=1;i<=n;i++){

cin>>a[i];

if(a[i]<=a[i+1]){

cnt++;

b[i]=cnt;

}else{

cnt+=1;

b[i]=cnt;

}

}

for(int i=1;i<=n;i++){

maxn=max(maxn,b[i]);

cout<<maxn;

break;

}

return 0;

}

汪恺恒,不对鸭???

汪宇航在2021-02-05 12:06:27追加了内容

#include <iostream>

using namespace std;

int n,a[1000000],b[1000000],cnt=0,maxn;

int main(){

cin>>n;

for(int i=1;i<=n;i++){

cin>>a[i];

}

for(int i=1;i<=n;i++){

if(a[i]<=a[i+1]){

cnt++;

b[i]=cnt;

}else{

cnt=1;

b[i]=cnt;

}

}

maxn=b[1];

for(int i=1;i<=n;i++){

maxn=max(maxn,b[i]);

}

cout<<maxn;

return 0;

}

拿错了?


0
已采纳
李显晨
李显晨
中级启示者
中级启示者

cnt初值应改为1

1
汪恺恒
汪恺恒
中级启示者
中级启示者

经典的最长不下降连续子序列,还没学到吧

核心

输入a数组

for(int i=1;i<=n;i++){//遍历数组
        if(a[i]<=a[i+1]){//如果不下降
            k++;//个数加一
            b[i]=k; //b数组记录个数
        }
        else{
            k=1;//个数归1
            b[i]=k;
        }
    }

最后找最大值

定义maxn,赋值为b[1];

循环(1至n){
        maxn=max(maxn,b[i]);    
    }

最后输出maxn

0
汪恺恒
汪恺恒
中级启示者
中级启示者

应该输入完数组再遍历

0
汪宇航
汪宇航
新手启示者
新手启示者

已自行解决,采纳第一人。

我要回答