⭐ 一、动态规划解法 1.读懂题目: 2.写出思路: 【1】核心设计思想是数学归纳法 ⭐【2】类似的,设计动态规划算法,需要 dp 数组: ⭐【3】举例:最长递增子序列问题 ⭐【4】使用数学归纳的思想,设计算法逻辑(动态规划的重头戏) ⭐【5】总结:如何找动态规划的 状态转移关系: ⭐【6】还有更高效的解法:...
43 changes: 42 additions & 1 deletion 43 动态规划系列/动态规划设计:最长递增子序列.md Original file line numberDiff line numberDiff line change@@ -215,4 +215,45 @@ public int lengthOfLIS(int[] nums) { ===其他语言代码=== ===其他语言代码===[Kian](https...
不要担心,动态规划的难点本来就在于寻找正确的状态转移方程,本文就借助经典的「最长递增子序列问题」来讲一讲设计动态规划的通用技巧:数学归纳思想。 最长递增子序列(Longest Increasing Subsequence,简写 LIS)是非常经典的一个算法问题,比较容易想到的是动态规划解法,时间复杂度 O(N^2),我们借这个问题来由浅入深讲解...
本文就借助「最长递增子序列」来讲一种设计动态规划的通用技巧:数学归纳思想。 最长递增子序列(Longest Increasing Subsequence,简写 LIS)是比较经典的一个问题,比较容易想到的是动态规划解法,时间复杂度 O(N^2),我们借这个问题来由浅入深讲解如何写动态规划。比较难想到的是利用二分查找,时间复杂度是 O(NlogN),...
不要担心,动态规划的难点本来就在于寻找正确的状态转移方程,本文就借助经典的「最长递增子序列问题」来讲一讲设计动态规划的通用技巧:数学归纳思想。 最长递增子序列(Longest Increasing Subsequence,简写 LIS)是非常经典的一个算法问题,比较容易想到的是动态规划解法,时间复杂度 O(N^2),我们借这个问题来由浅入深讲解...