|
10 | 10 |  |
11 | 11 |
|
12 | 12 | 相关推荐: |
13 | | - * [动态规划设计:最大子数组](https://labuladong.gitbook.io/algo) |
14 | | - * [一文学会递归解题](https://labuladong.gitbook.io/algo) |
| 13 | + * [动态规划设计:最大子数组](https://labuladong.gitbook.io/algo/) |
| 14 | + * [一文学会递归解题](https://labuladong.gitbook.io/algo/) |
15 | 15 |
|
16 | 16 | 读完本文,你不仅学会了算法套路,还可以顺便去 LeetCode 上拿下如下题目: |
17 | 17 |
|
18 | 18 | [300.最长上升子序列](https://leetcode-cn.com/problems/longest-increasing-subsequence) |
19 | 19 |
|
20 | 20 | **-----------** |
21 | 21 |
|
22 | | -也许有读者看了前文 [动态规划详解](https://labuladong.gitbook.io/algo),学会了动态规划的套路:找到了问题的「状态」,明确了 `dp` 数组/函数的含义,定义了 base case;但是不知道如何确定「选择」,也就是不到状态转移的关系,依然写不出动态规划解法,怎么办? |
| 22 | +也许有读者看了前文 [动态规划详解](https://labuladong.gitbook.io/algo/),学会了动态规划的套路:找到了问题的「状态」,明确了 `dp` 数组/函数的含义,定义了 base case;但是不知道如何确定「选择」,也就是不到状态转移的关系,依然写不出动态规划解法,怎么办? |
23 | 23 |
|
24 | 24 | 不要担心,动态规划的难点本来就在于寻找正确的状态转移方程,本文就借助经典的「最长递增子序列问题」来讲一讲设计动态规划的通用技巧:**数学归纳思想**。 |
25 | 25 |
|
|
43 | 43 |
|
44 | 44 | **我们的定义是这样的:`dp[i]` 表示以 `nums[i]` 这个数结尾的最长递增子序列的长度。** |
45 | 45 |
|
46 | | -PS:为什么这样定义呢?这是解决子序列问题的一个套路,后文[动态规划之子序列问题解题模板](https://labuladong.gitbook.io/algo) 总结了几种常见套路。你读完本章所有的动态规划问题,就会发现 `dp` 数组的定义方法也就那几种。 |
| 46 | +PS:为什么这样定义呢?这是解决子序列问题的一个套路,后文[动态规划之子序列问题解题模板](https://labuladong.gitbook.io/algo/) 总结了几种常见套路。你读完本章所有的动态规划问题,就会发现 `dp` 数组的定义方法也就那几种。 |
47 | 47 |
|
48 | 48 | 根据这个定义,我们就可以推出 base case:`dp[i]` 初始值为 1,因为以 `nums[i]` 结尾的最长递增子序列起码要包含它自己。 |
49 | 49 |
|
@@ -164,7 +164,7 @@ public int lengthOfLIS(int[] nums) { |
164 | 164 |
|
165 | 165 | 我们只要把处理扑克牌的过程编程写出来即可。每次处理一张扑克牌不是要找一个合适的牌堆顶来放吗,牌堆顶的牌不是**有序**吗,这就能用到二分查找了:用二分查找来搜索当前牌应放置的位置。 |
166 | 166 |
|
167 | | -PS:旧文[二分查找算法详解](https://labuladong.gitbook.io/algo)详细介绍了二分查找的细节及变体,这里就完美应用上了,如果没读过强烈建议阅读。 |
| 167 | +PS:旧文[二分查找算法详解](https://labuladong.gitbook.io/algo/)详细介绍了二分查找的细节及变体,这里就完美应用上了,如果没读过强烈建议阅读。 |
168 | 168 |
|
169 | 169 | ```java |
170 | 170 | public int lengthOfLIS(int[] nums) { |
@@ -207,7 +207,7 @@ public int lengthOfLIS(int[] nums) { |
207 | 207 |
|
208 | 208 | **_____________** |
209 | 209 |
|
210 | | -**刷算法,学套路,认准 labuladong,公众号和 [在线电子书](https://labuladong.gitbook.io/algo) 持续更新最新文章**。 |
| 210 | +**刷算法,学套路,认准 labuladong,公众号和 [在线电子书](https://labuladong.gitbook.io/algo/) 持续更新最新文章**。 |
211 | 211 |
|
212 | 212 | **本小抄即将出版,微信扫码关注公众号,后台回复「小抄」限时免费获取,回复「进群」可进刷题群一起刷题,带你搞定 LeetCode**。 |
213 | 213 |
|
|
0 commit comments