栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

1-9 最长连续递增子序列 (20 分)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

1-9 最长连续递增子序列 (20 分)

1-9 最长连续递增子序列 (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
注意连续和非连续的差距还是挺大的,连续只要找前面和它挨着比它大的元素有几个选最大就好了,非连续可以用动态规划,最长公共子序列,二分查找很复杂。

#include 
#include 
 struct node
{
    int data;
    int count;
}s[100001];
int main()
{
    int n,i,j;
    scanf("%d",&n);
    for(i=0;is[j-1].data)
                s[i].count++;
            else
                break;
        }
    }
    int sum=0,t,z;
    for(i=0;i 

今天的月考考了这道题,但是当时没写出来,思路是有的,就是写不出来

#include

typedef struct node
{
    int *data;
    int maxsize;
}Node,*SeqList;
SeqList Init_SeqList(int m);
SeqList Init_SeqList(int m)
{
    SeqList L;
    L->data=(int*)malloc(sizeof(int)*m);
    L->maxsize=m;
    int d;
    for(int i=0;imaxsize;i++)
    {
        scanf("%d",&d);
            L->data[i]=d;
    }
return L;
}

int main()
{
    int m,i,count=1,max=0,t,s=0;
    scanf("%d",&m);
    SeqList L;
    L=Init_SeqList(m);

    for(int i=0;idata[j-1]data[j])
               count++;
            else
                break;
        }
        if(count>max)
        {
             max=count;
             t=i;
        }
    }
    for(int k=t;kdata[k]);
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/605269.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号