解释:
我们把n级台阶时的跳法看成n的函数,记为f(n)。
当n>=2时,第一次跳的时候有两种不同的选择:
- 第一次跳1级,此时跳法的数目等于后面剩下的n-1级台阶的跳法数目,即为f(n-1);
- 第一次跳2级,此时跳法数目等于后面剩下的n-2级台阶的跳法数目,即为f(n-2)。
因此,n级台阶的不同跳法总数为f(n) = f(n-1) + f(n-2)
class Solution: def jumpFloor(self, number): # write code here #此题与菲波那切数列的本质一致 if number == 1: return 1 if number == 2: return 2 fOne = 1 fTwo = 2 for i in range(3,number+1): fN = fTwo + fOne fOne = fTwo fTwo = fN return fN