tip: 面试中遇到能否优化递归算法的问题,简要回答了递归算法,动态规划以及时间和空间的优化,再问到能否使用矩阵运算时有点懵,网上查了一下矩阵的快速幂运算算法,记录一下。
问题描述:在一个n阶的台阶,一次可以走一阶或者三阶,最后到顶端一共有多少种方式。
此问题的递推关系显而易见,假设走到第i阶时一共有f(i)种方式,则f(i) = f(i-1) + f(i-3),i4
完整描述:
对于f(n) = f(n-1) + f(n-3), f(n-1) = f(n-2) + f(n-4), ......
写成矩阵表达式如下: