哪位大佬帮忙看看我哪错了

P1567 统计天数

数组开小了,开大一百倍就能过了
by Ryan_ @ 2019-06-24 10:23:46


貌似十倍就够了
by Ryan_ @ 2019-06-24 10:24:16


@[四大神笔](/space/show?uid=168013) ```cpp #include<iostream> #include<cstdio> #include<cstring> #include<cmath> using namespace std; int n,a[1000001],s=0,maxx=0; int main(){ cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]; } for(int i=1;i<=n;i++){ if(a[i+1]<=a[i]){ s=0; } if(a[i]<a[i+1]){ s++; } if(s>maxx){ maxx=s; } } cout<<maxx+1; return 0; } ``` 看看我的代码吧,思路都一样
by 哈哈哈哈?? @ 2019-06-24 10:30:56


#### 个人意见仅供参考 判断连续上升的天数其实包含一个比较隐性的条件。比如 1 2 2 2 3 4 这样也算作是连续上升的天数。因为实质上题目求的是最大递增子序列。 所以第九行开始的代码 ```cpp for(int i=1;i<=n-1;i++){ if(a[i]<a[i+1]){ max++; } ``` 应该改成 ```cpp for(int i=1;i<=n-1;i++){ if(a[i]=<a[i+1]){ max++; } ``` 修改的地方是判断条件: ```cpp a[i]=<a[i+1] ```
by jstlxz @ 2019-06-24 10:42:18


@[四大神笔](/space/show?uid=168013) ```#include<stdio.h> int main(){ int n; long m,m1=-1,k=0,k1=0; int i; scanf("%d",&n); for(i=0;i<n;i++){ scanf("%ld",&m); if(m1<m) k++; else{ if(k1<k) k1=k; k=1; } m1=m; } printf("%ld\n",k1); return 0; }``` 你自己看吧
by ljl123456789 @ 2019-07-18 19:49:03


@[四大神笔](/space/show?uid=168013) ``` #include<stdio.h> int main(){ int n; long m,m1=-1,k=0,k1=0; int i; scanf("%d",&n); for(i=0;i<n;i++){ scanf("%ld",&m); if(m1<m) k++; else{ if(k1<k) k1=k; k=1; } m1=m; } printf("%ld\n",k1); return 0; } ```
by ljl123456789 @ 2019-07-18 19:51:17


@[四大神笔](/space/show?uid=168013) ``` for(int i=1;i<=n-1;i++) i<=n-1//错了 ```
by ljl123456789 @ 2019-07-18 19:53:46


|