首页 > 分享 > 最大上升子序列

最大上升子序列

最大上升子序列

最新推荐文章于 2021-02-02 15:30:58 发布

Jazzmine 于 2017-09-01 20:49:13 发布

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

运用递归的方法 将整个问题分成一堆子问题

即转化为以第i(i<n)个数为终点的最长上升子序列的长度 最终取他们的最大值就可以了

状态就是n个数 储存长度的数组是maxlen[MAX] 转化方程是如果a[j]<a[i](j<i),令maxlen[i]取第j个数为终点的最长上升子序列长度再加一 但是这里为什么要取一个最大值没有搞懂

啊 搞懂了 因为同一个i中循环了不同的j 总要取一个最大值作为当前i的长度 果然还是手写一遍比较好

#include <iostream>

#include <cstring>

#include <algorithm>

using namespace std;

int main(int argc, const char * argv[]) {

    int i, j, n;

    int a[1005], maxlen[1005];

    cin >> n;

    for(i = 1; i <= n; i ++){

        scanf("%d", &a[i]);

        maxlen[i] = 1;

    }

   // memset(maxlen, 1, sizeof(maxlen));

    for( i = 2; i <= n; i ++ ){

        for( j = 1; j < i; j ++ ){

            if( a[i] > a[j] ){

                maxlen[i] = max(maxlen[i], maxlen[j] + 1);//?? maxlen[i] = maxlen[j] + 1;

            }

        }

    }

    printf("%dn", maxlen[n]);

    cout << * max_element( maxlen + 1, maxlen + n + 1);

    return 0;

}


相关知识

最大上升子序列
鸮鹦鹉种群全基因组序列公布
一种语义驱动的混合现实场景下的虚拟宠物行为生成方法与流程
滳滴宠宠上线宠物交友搭子户外玩耍搭子萌宠搭子本地单身交友搭子
一种宠物行为识别方法、装置和可读存储介质与流程
罗子君的遭遇=绝对不能做全职太太?
QQ飞车手游:新版本宠物雷震子的介绍以及技能测评
娇子:宠物旅行保姆
欧洲市场趋势:英国宠物品类市场需求正在上升
猫咪能吃车厘子吗?

网址: 最大上升子序列 https://m.mcbbbk.com/newsview177182.html

所属分类:萌宠日常
上一篇: 动物圈9月挑战赛:宠物打卡日常第
下一篇: 欧冠决赛对阵确定!曼城VS切尔西