题目如下
- 给出的解法
/**
感觉写的好好比起我的,他把大小比较集中起来了虽然开始比较不好理解,但是减少了代码的失误率
*/
#include<iostream>
using namespace std;
int num[100010],mark[100010];
int main()
{
int n,i,j=0,max=0,s=0,k,m;
cin>>n;
mark[0]=0;
for(i=0;i<n;i++)
{
cin>>num[i];
}
for(i=0;i<n;i++)
{
if(num[i]<num[i+1])
{
mark[j]++;
}
else j++;
}
for(m=0;m<j;m++)
{
if(mark[m]>max)
{
max=mark[m];
k=m;
}
}
for(i=0;i<k;i++)
{
s=s+mark[i]+1;
}
cout<<num[s];
for(i=s+1;i<s+max+1;i++)
{
cout<<" "<<num[i];
}
return 0;
}