Advertisement

算法基础:采用动态规划方法来处理最长上升子序列问题

阅读量:

本文进一步阐述了运用动态规划策略应对最长递增子序列问题的实现方式。

目录

  • LIS:最长递增子序列
    • 构建动态规划数组
    • 解题策略
    • 程序演示
    • 归纳

LIS:最长上升子序列

LIS(最长上升子序列):作为Longest Increasing Subsequence的简称,其定义为在给定序列中能够找到的、元素值呈现严格递增趋势的最长子序列。

  • 题目内容说明:针对一个长度为n的数值序列,要求计算其中所包含的最长递增子序列的具体长度。

定义DP数组

由于前述阐述较为简略,此处通过一张示意图对所涉及的问题及其对应的解决策略进行更为直观的展示与说明。

在这里插入图片描述

【最直接的解决途径是借助相同长度的dp数组来实现,该数组的具体定义如下:

dp[i]:表示在目标数列中,以第i个元素作为末尾位置时,所能构成的最长递增子序列的长度。

求解方法概述

解决策略:当第i-j个数值均大于第i个数值时,dp[i]的取值为1;若存在先前数值大于当前数值,则在已

全部评论 (0)

还没有任何评论哟~