1 条题解
-
0
注意,如果数组中有两个相交的连续非递减子序列,它们可以合并成一个。因此,你只需从左到右遍历数组。如果当前子序列可以用第 个元素继续延伸,那么我们就将其加入;否则,我们就开始一个新的子序列。答案就是所有找到的子序列中的最大长度。
#include<iostream> #include<math.h> #include<algorithm> #include<stdio.h> #include<map> #include<vector> #include<set> #include<iomanip> #define F first #define S second #define P system("PAUSE"); #define H return 0; #define pb push_back using namespace std; const long long A=100000000000000LL,N=228228; long long a[N],k,o,i,j,n,m; int main(){ cin>>n; for(i=0;i<n;i++)scanf("%d",&a[i]); k=1; for(i=1;i<n;i++)if(a[i]>=a[i-1])k++;else o=max(o,k),k=1; o=max(o,k); cout<<o; }
- 1
信息
- ID
- 6773
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 5
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者