1- # 1 类似斐波那契数列的递归
21
3- ## 1.1 求斐波那契数列矩阵乘法的方法
2+ - [ 1 类似斐波那契数列的递归] ( #1 )
3+ * [ 1.1 求斐波那契数列矩阵乘法的方法] ( #11 )
4+ * [ 1.2 菲波那切数列可优化为O(logN)时间复杂度] ( #12 )
5+ + [ 1.2.1 矩阵加快速幂方法] ( #121 )
6+ - [ 1.2.1.1 矩阵推导] ( #1211 )
7+ - [ 1.2.1.2 快速幂转化思路] ( #1212 )
8+ * [ 1.3 递推推广式] ( #13 )
9+ * [ 1.4 迈楼梯问题] ( #14 )
10+ * [ 1.5 递推经典例题一] ( #15 )
11+ * [ 1.6 递推经典例题二] ( #16 )
12+
13+ <h1 id =' 1 ' >1 类似斐波那契数列的递归</h1 >
14+
15+
16+ <h2 id =' 11 ' >1.1 求斐波那契数列矩阵乘法的方法</h2 >
417
5181、菲波那切数列的线性求解(O(N))的方法非常好理解(一次遍历,N项依赖于N-1项和N-2项)
619
9223、求出这二阶矩阵,进而最快求出这个二阶矩阵的N-2次方
1023
1124
12- ## 1.2 菲波那切数列可优化为O(logN)时间复杂度
25+ < h2 id = ' 12 ' > 1.2 菲波那切数列可优化为O(logN)时间复杂度</ h2 >
1326
14- ### 1.2.1 矩阵加快速幂方法
27+ < h3 id = ' 121 ' > 1.2.1 矩阵加快速幂方法</ h3 >
1528
16- #### 1.2.1.1 矩阵推导
29+ < h4 id = ' 1211 ' > 1.2.1.1 矩阵推导</ h4 >
1730
1831> 由于菲波那切数列是一个严格的递推式,不会发生条件转移。
1932
6376
6477> 转化为,怎么求多个相同矩阵乘起来,怎么算比较快的问题?我们先思考怎么求一个数乘方怎么算比较快的问题?
6578
66- #### 1.2.1.2 快速幂转化思路
79+ <h4 id =' 1212 ' >1.2.1.2 快速幂转化思路</h4 >
80+
6781
6882问:怎么快速求出10的75次方的值是多少。
6983
8397
8498** 在JDK中,Math.power函数的内部,也是这样实现指数函数的(整数次方)**
8599
86-
87- ## 1.3 递推推广式
100+ <h2 id =' 13 ' >1.3 递推推广式</h2 >
88101
89102如果某一个递推式,` F(N) = c1F(n-1) + C2F(n-2) + ... + czF(N-k) ` k表示最底层减到多少,我们称之为k阶递归式。c1,c2,cz为常数系数,k为常数,那么都有O(logN)的解。系数只会影响到我们的k阶矩阵的不同
90103
@@ -310,7 +323,7 @@ public class Code01_FibonacciProblem {
310323
311324```
312325
313- ## 1.4 迈楼梯问题
326+ < h2 id = ' 14 ' > 1.4 迈楼梯问题</ h2 >
314327
315328问题描述:小明想要迈到n层台阶上去,可以一次迈一层台阶,可以一次迈两层台阶。问:迈到n层一共可以有多少种方法
316329
@@ -344,7 +357,7 @@ F(N) = F(n-1) + F(n-3) - F(n-10)
344357
345358==每年,这种问题在面试笔试中大量出现,兔子生乌龟问题,乌龟生兔子问题,等等,层出不穷,都可以用这种方法模型求解==
346359
347- ## 1.5 递推经典例题一
360+ < h2 id = ' 15 ' > 1.5 递推经典例题一</ h2 >
348361
349362题目描述:给定一个数N,想象只有0和1两种字符,组成的所有长度为N的字符串。如果某个字符串,任何0字符的左边都有1紧挨着,认为这个字符串达标,返回有多少达标的字符串
350363
@@ -362,7 +375,8 @@ F(N) = F(n-1) + F(n-3) - F(n-10)
362375f(i) = f(i-1) + f(i-2)
363376```
364377
365- ## 1.6 递推经典例题二
378+ <h2 id =' 16 ' >1.6 递推经典例题二</h2 >
379+
366380
367381题目描述:有一款2行,N列的区域。假设我们只有1* 2大小的瓷砖,我们把该区域填满有多少种方案?
368382
0 commit comments