蓝桥杯训练——最长递增子序列

问题描述:最长递增子序列
习题3.4 最长连续递增子序列(20 分)
给定一个顺序存储的线性表,请设计一个算法查找该线性表中最长的连续递增子序列。例如,(1,9,2,5,7,3,4,6,8,0)中最长的递增子序列为(3,4,6,8)。
输入格式:
输入第1行给出正整数n(≤10
​5
​​ );第2行给出n个整数,其间以空格分隔。
输出格式:
在一行中输出第一次出现的最长连续递增子序列,数字之间用空格分隔,序列结尾不能有多余空格。
输入样例:
15
1 9 2 5 7 3 4 6 8 0 11 15 17 17 10
输出样例:


3 4 6 8
作者:何知令

完成时间:2017年9月16日

代码:

/*
问题描述:最长递增子序列
习题3.4 最长连续递增子序列(20 分)
给定一个顺序存储的线性表,请设计一个算法查找该线性表中最长的连续递增子序列。例如,(1,9,2,5,7,3,4,6,8,0)中最长的递增子序列为(3,4,6,8)。
输入格式:
输入第1行给出正整数n(≤10
​5
​​ );第2行给出n个整数,其间以空格分隔。
输出格式:
在一行中输出第一次出现的最长连续递增子序列,数字之间用空格分隔,序列结尾不能有多余空格。
输入样例:
15
1 9 2 5 7 3 4 6 8 0 11 15 17 17 10
输出样例:

3 4 6 8
作者:何知令
完成时间:2017年9月16日
*/

#include 
#include 

int main()
{
    int i,j,m;
    int n;
    int num[100000];
    int ans[100000];
    int maxlen=0,len;
    while(~scanf("%d",&n))
    {
        for(i=0; i=0&&num[i]<=9)
        {
            if(num[i+1]>num[i])
            {
                len++;
                i++;
                continue;
            }
            else
            {
                if(maxlen=0; j--,m--)
                        ans[j]=num[m];
                    len=0;
                }
                else
                    len=0;
            }
            i++;
        }
        printf("%d",ans[0]);
        for(i=1; ans[i]!='\0'; i++)
            printf(" %d",ans[i]);
        printf("\n");
    }
    return 0;
}
知识点总结:..
学习心得:..

你可能感兴趣的:(搜索)