2.1-最长递增子序列-动态规划解法
Reference
LeetCode 300. 最长递增子序列
牛客网. 最长递增子序列
labuladong的算法小抄
Markdown语法
Labuladong的算法小抄(纸质书籍 2021年1月第1版,2022年1月第七次印刷 第2章,第1节)
- 勘误:第93页最下面的图里 dp[3] = 4 应改为dp[3] = 3
动态规划一般解法
找到“状态”和“选择”->明确dp数组/函数的定义->寻找状态之间的关系。
难点
- dp数组的含义
- 寻找正确的状态转移方程(数学归纳法)
代码解释详见 Labuladong的算法小抄 书箱(2022年1月第七次印刷) pp.96-100
def func(): arr = list(map(int,input().strip().split())) if len(arr) == 1: return 1 if len(arr) == 0: return 0 lenn = len(arr) dp = [1]*lenn for i in range(lenn): for j in range(i): if arr[i] > arr[j]: dp[i] = max(dp[i],dp[j]+1) res = 0 for i in range(lenn): res = max(res,dp[i]) return res if __name__ == '__main__': c = func() print(c)
作者:楚千羽
出处:https://www.cnblogs.com/chuqianyu/
本文来自博客园,本文作者:楚千羽,转载请注明原文链接:https://www.cnblogs.com/chuqianyu/p/16172351.html
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文连接,否则保留追究法律责任的权利!
标签:
算法
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
2020-04-20 mathtype公式编辑器设置字母正体斜体的方法