假设你正在爬楼梯。需要 n 阶你才能到达楼顶。
每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?
示例 1:
1 | 输入:n = 2 |
示例 2:
1 | 输入:n = 3 |
提示:
1 | 1 <= n <= 45 |
解法一:动态规划
解法二:矩阵快速幂
$$
\begin{bmatrix}
{1}&{1}\
{1}&{0}\
\end{bmatrix}
\begin{bmatrix}
{f(n)}\
{f(n-1)}\
\end{bmatrix}=
\begin{bmatrix}
{f(n)}{+}{f(n-1)}\
{f(n)}\
\end{bmatrix}=
\begin{bmatrix}
{f(n+1)}\
{f(n)}\
\end{bmatrix}
$$
$$
\begin{bmatrix}
{f(n+1)}\
{f(n)}\
\end{bmatrix}=
\begin{bmatrix}
{1}&{1}\
{1}&{0}\
\end{bmatrix}^{n}
\begin{bmatrix}
{f(1)}\
{f(0)}\
\end{bmatrix}
$$
最后更新: 2024年05月31日 01:49