zoukankan      html  css  js  c++  java
  • 习题3.4 最长连续递增子序列(20 分)浙大版《数据结构(第2版)》题目集

    给定一个顺序存储的线性表,请设计一个算法查找该线性表中最长的连续递增子序列。例如,(1,9,2,5,7,3,4,6,8,0)中最长的递增子序列为(3,4,6,8)。

    输入格式:

    输入第1行给出正整数n(105​​);第2行给出n个整数,其间以空格分隔。

    输出格式:

    在一行中输出第一次出现的最长连续递增子序列,数字之间用空格分隔,序列结尾不能有多余空格。

    输入样例:

    15
    1 9 2 5 7 3 4 6 8 0 11 15 17 17 10
    

    输出样例:

    3 4 6 8
    

    代码:
    #include <iostream>
    using namespace std;
    
    int main()
    {
        int n,r = 0,c = 1,maxi = 0;
        int num[100000];
        cin>>n;
        for(int i = 0;i < n;i ++)
        {
            cin>>num[i];
        }
        for(int i = 1;i < n;i ++)
        {
            if(num[i] <= num[i - 1])
            {
                if(c > maxi)maxi = c,r = i - 1;
                c = 1;
                continue;
            }
            c ++;
        }
        if(c > maxi)maxi = c,r = n - 1;
        for(int i = maxi - 1;i >= 0;i --)
        {
            if(i == maxi - 1)cout<<num[r - i];
            else cout<<' '<<num[r - i];
        }
    }
  • 相关阅读:
    数据后台查询分页条件查询数据
    避免js缓存
    jquery点击按钮
    网页内容打印
    数据表的导出
    C#实现字符串按多个字符采用Split方法分割
    JQuery
    AJAX
    JSON
    BOM
  • 原文地址:https://www.cnblogs.com/8023spz/p/7635369.html
Copyright © 2011-2022 走看看