zoukankan      html  css  js  c++  java
  • DP简单问题联系--最长递增子序列+最长公共子序列等

    今天重温了一下dp问题,发现自己两个礼拜不写题目就什么都不会了。。。心态爆炸,感觉去考试怕是要gg了。。。

    不过今天总结一下写的题目,全部都是基础的dp问题

    第一个是

    求最长不下降子序列的长度

    第一行为n,表示n个数 第二行n个数

    最长不下降子序列的长度

    N小于5000 for  each  num  < =maxint

    样例输入

    3
    1 2 3
    

    样例输出

    3
    //
    // Created by 陈平 on 2018/7/8.
    //
    
    #include "iostream"
    using namespace std;
    
    int main(){
        int num[6001];
        int dp[6001];
        int n;
        cin>>n;
        for (int i = 1; i <=n ; ++i) {
            cin>>num[i];
            dp[i] = 1;
        }
        int maxx = 1;
        for (int j = 2; j <=n ; ++j) {
            maxx = 1;
            for (int i = 1; i <j ; ++i) {
                if(num[i]<num[j]) maxx = max(dp[i]+1,maxx);
            }
            dp[j]  = maxx;
        }
        int flag = -999;
    
        for (int k = 1; k <=n ; ++k) {
            if(dp[k]>flag) {
                flag = dp[k];
            }
    
        }
        cout<<flag;
    //    for (int l = 1; l <=n ; ++l) {
    //        cout<<dp[l];
    //    }
    }

    难度不大,思想也比较简单。

  • 相关阅读:
    借阅的列表
    列表中的方法
    对编程本质的认识
    列表技能
    链表策略
    在pycharm里添加解释器路径
    数据类型转化
    罗列内存中的数字
    【python3的学习之路十】模块
    【python3的学习之路九】函数式编程
  • 原文地址:https://www.cnblogs.com/Pinging/p/9281508.html
Copyright © 2011-2022 走看看