本文共 523 字,大约阅读时间需要 1 分钟。
对于爬楼梯问题,我们可以通过递推的方式找到解决方案。设f(n)为爬n阶楼梯的方法数,每次可以爬1阶或2阶。我们发现,f(n) = f(n-1) + f(n-2),这是因为最后一步可以是1阶或2阶,而前n-1阶和前n-2阶的方法数之和即为当前的方法数。初始条件为f(1)=1和f(2)=2。
以下是使用迭代方法计算f(n)的代码:
假设你正在爬楼梯。需要 n 阶你才能到达楼顶.
每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?
注意:给定 n 是一个正整数.
public int climbStairs(int n) { if (n == 1) return 1; if (n == 2) return 2; int left = 1, right = 2; int i = 3; while (i <= n) { int next = left + right; left = right; right = next; i++; } return right; }
转载地址:http://fseyk.baihongyu.com/