-
LeetCode跳跃问题:涉及数据结构理论知识与LeetCode实践
资源介绍
leetcode
跳跃
DataStructureAndAlgorithm
LeetCode问题跟踪
困难难度的题目,暂未做
1.
DP问题
该分类直接按照的顺序,在对应的题目下列入个人认为的关键点
线性DP
单串,
注意,这里只要求是升序的子序列,而不是连续的,即[2,5,3]这样的增序子序列是[2,3]
数组dp,其中dp[i]表示当前节点对应的最长升序子序列的长度。因此,最终整个序列的最长升序子序列长度是dp数组中的最大值
dp通项为\(
dp[i]
=
max(dp[i],
dp[j]
+
1),
i
>
j
且
num[i]
>
nums[j]
\)
双串,
tips:用一个二维数组表示两个字符串对应的子串的公共子串的长度的查找表table
边界条件
二维数组的行和列分别比输入的两个字符串长度各增加1,用于处理空串,即table左上角肯定为0,表示输入为空字符串的时候的公共子序列的长度
鉴于上一条,起始搜索下标都是从1开始,比较时用的是i-1和j-1
tip:
三角形的每行的行号即该行的列数,那么用dp数组表示到当前行的对应元素的最小路径,因此只需要一个一维数组即可,整个三角
- 上一篇: LIS资料--210种仪器联机设置
- 下一篇: 三甲医院LIS系统解决方案