题目描述:
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
# -*- coding:utf-8 -*-
class Solution:
def jumpFloorII(self, number):
# write code here
#思路:1个台阶一种跳法,2个台阶两种跳法,
#3个台阶,先跳一个,剩下2个台阶;先跳两个,剩下1个台阶,累计2个台阶和1个台阶的跳法+1(+1的原因是可以直接跳3个台阶)
#n个台阶,先跳一个,剩下n-1个台阶;先跳两个,剩下n-2个台阶;...;先跳n-1个,剩下1个台阶;累计n-1,...,2,1个台阶的跳法+1
if number == 1:
return 1
if number == 2:
return 2
sum_ = 3
x = 1
y = 2
for i in range(3,number+1):
x,y = y,sum_+1
sum_ = sum_+y
return y
菜鸟一枚,代码仅供参考,如有问题,望指正~