解释:
我们把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
京公网安备 11010502036488号