题目描述
- 一只青蛙一次可以跳上1级台阶,也可以跳上2级。
- 求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)
理解
- 完全蒙啊
- 那我们就用特例先分析一下
如果有1级台阶,那有1种
如果有2级台阶,那有2种
如果有3级台阶,那一定是先跳1级或者先跳2级,再跳到3级台阶上,跳1级后有2种,跳2级后有1种,共有3种跳法 - 如果是n级台阶呢,假设有F(n)种跳法,那一定也是先跳1级或者先跳2级,再继续跳到n级台阶,跳1级后有F(n-1)种,跳2级后有F(n-2)种,故有F(n)=F(n-1)+F(n-2)
- 可以发现本质上就是斐波那契数列问题
解题思路
和斐波那契数列写法一样
思路1
class Solution:
def jumpFloor(self, number):
if number == 1:
return 1
elif number == 2:
return 2
else:
a = 1
b = 2
for i in range(2,number):
a,b = b,a+b
return b
或者
class Solution:
def jumpFloor(self, number):
a=[1,2]
if number<=2:
return a[number-1]
else:
for i in range(2,number):
a.append(a[i-1]+a[i-2])
return a[number-1]

博客围绕青蛙跳台阶问题展开,描述了青蛙一次可跳1级或2级台阶,求跳上n级台阶的跳法数量。通过特例分析,得出该问题本质是斐波那契数列,即F(n)=F(n - 1)+F(n - 2),解题思路与斐波那契数列写法相同。
4811

被折叠的 条评论
为什么被折叠?



