题目
在数列 a[1], a[2], …, a[n] 中,如果 a[i] < a[i+1] < a[i+2] < … < a[j],则称 a[i] 至 a[j] 为一段递增序列,长度为 j-i+1。
给定一个数列,请问数列中最长的递增序列有多长。
输入格式
输入的第一行包含一个整数 n。
第二行包含 n 个整数 a[1], a[2], …, a[n],相邻的整数间用空格分隔,表示给定的数列。其中,,数列中的数
输出格式
输出一行包含一个整数,表示答案。
输入样例
7
5 2 4 1 3 7 2
输出样例
3
答案
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;//长度
cin>>n;//数列
int a[n];
for(int i=0;i<n;i++)
{
cin>>a[i];
}
int t=1,p=0;
int b[n];//保存每个递增序列的长度
for(int i=0;i<n;i++)//赋值
{
b[i]=0;
}
for(int i=0;i<n-1;i++)
{
if(a[i]<a[i+1])//求出每个递增序列的长度
{
t++;
}
else//保存
{
b[p]=t;
p++;
t=1;
}
}
int max=0;
for(int i=0;i<n;i++)//找出最长递增序列的长度
{
if(b[i]>max)
{
max=b[i];
}
}
cout<<max;
return 0;
}