求最长子序列(动态规划)

  1. 废话不多说,代码如下:

    #include<bits/stdc++.h>
    using namespace std;
    const int N = 1010;
    int a[N], f[N];
    int main(){
        int n;
        scanf("%d", &n);
        for(int i = 1; i <= n; i ++) scanf("%d", a + i);
        for(int i = 1; i <= n; i ++){
            f[i] = 1;
            for(int j = 1; j < i; j ++)
                if(a[j] < a[i]) f[i] = max(f[j] + 1, f[i]);
        }
        int res = 1;
        for(int i = 1; i <= n; i ++) res = max(res, f[i]);
        printf("%d", res);
        return 0;
    }
  2. 局部所有情况寻求最优解以达到全局最优解,仔细理解体会动态规划的核心思想。

posted @   ture?  阅读(48)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示