问题描述
给定问题描述给定一个长度为n的部分有序的数组,找出其中的最长连续递增子序列。
输入描述
第一行输入一个整数n,表示数组的长度
第二行输入数组中的各个元素
输出描述
输出一个数组,表示给定数组中的最长连续递增子序列
样例输入
10
1 9 2 5 7 3 4 6 8 0
样例输出
3 4 6 8
参考代码
#include<stdio.h>
int main(){
int n,max=0,left,right;
scanf("%d",&n);
int a[n];
for(int i=0;i<n;i++)
scanf("%d",&a[i]);
for(int i=0;i<n;i++)
{
int begin=i;//设置哨兵
while(a[i+1]>a[i])
i++;
int end=i;//设置游标
int length=end-begin+1;//计算哨兵与游标之间的长度
if(length>max)
{
max=length;
left=begin;
right=end;
}
}
for(int i=left;i<=right;i++)
printf("%d ",a[i]);
printf("\n");
return 0;
}