美文网首页
动态规划算法

动态规划算法

作者: 霹雳解锋镝 | 来源:发表于2020-03-14 17:22 被阅读0次
动态规划算法
定义dp[i]为第i个数在前i中按顺序排列的下标
    dp[i] = max(dp[i-1])+1
    其中:0 =< j < i
         arr[j] < arr[i]

public static int lengthOfLIS(int[] nums) {
    if (nums.length == 0) {
        return 0;
    }
    // 第i个数在前i中按顺序排列的下标
    int[] dp = new int[nums.length];
    dp[0] = 1;
    // 初始化最长上升子序列长度
    int maxLen = 1;
    for (int i = 1; i < nums.length; i++) {
        // 初始化i个数的下标
        int location = 0;
        // 第i个数以前i-1个数进行比较
        for (int j = 0; j < i; j++) {
            // 第i个数,比j个数大
            if (nums[i] > nums[j]) {
                // 得到前i-1个的最大下标
                location = Math.max(dp[j], location);
            }
        }
        dp[i] = location + 1;
        maxLen = Math.max(dp[i], maxLen);
    }
    return maxLen;
}

最长上升子序列

相关文章

  • 动态规划算法

    动态规划算法 最长上升子序列

  • 维特比算法

    维特比(Viterbi)算法是一种动态规划算法,在处理隐马尔可夫(HMM)最优路径问题时经常被使用. 动态规划算法...

  • 最短路径解决方法

    Floyd算法;Dijkstra算法;Bellman-Ford算法;动态规划算法

  • 背包问题

    介绍 学习动态规划算法的经典例题。动态规划算法一般有3个特征1、最优化原理:最优解所包含的子问题的解也是最优的。2...

  • 动态规划算法(01背包问题)

    一. 动态规划算法介绍: 动态规划算法和分治算法类似,也是将待求解问题分成若干个小问题一步步求解,不同的是,每一个...

  • 基础算法

    二分查找 冒泡排序(优化) 归并排序 动态规划算法

  • 动态规划入门

    1.什么是动态规划动态规划是在前面已有答案的基础上向下递推的过程 动态规划算法的两种形式上面已经知道动态规划算法的...

  • 【JS算法】动态规划 - 斐波那契数列

    动态规划算法 动态规划算法的核心思想是:将大问题划分为小问题进行解决,从而一步步获取最优解的处理算法。其基本思想也...

  • 2019-11-04 回溯算法

    package others; import java.util.Arrays; /** 动态规划算法计算10个工...

  • 动态规划

    动态规划(Dynamic Programming) 本文包括: 动态规划定义 状态转移方程 动态规划算法步骤 最长...

网友评论

      本文标题:动态规划算法

      本文链接:https://www.haomeiwen.com/subject/payhjhtx.html