题解 | #跳台阶扩展问题#
跳台阶扩展问题
https://www.nowcoder.com/practice/22243d016f6b47f2a6928b4313c85387
题目:https://www.nowcoder.com/practice/22243d016f6b47f2a6928b4313c85387
搬运题解区漫漫云天自翱翔清楚的图示。
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param number int整型
# @return int整型
#
class Solution:
def jumpFloorII(self , number: int) -> int:
# 跳台阶拓展,要求f(n),只记录f(n-1)和f(n-2)是不够的了,要把之前的每一步的跳法数量都记录下
#考虑最后一步是跳几阶到达目标位置的。推测公式。
#f(n)=f(n-1)+f(n-2)+...+f(1)
#f(1)=1,f(2)=2,f(3)=4,f(4)=8
#规律是f(n)=f(n-1)+f(n-2)+...+f(1)+1
#再仔细观察,规律是f(n)=2**(n-1)
#法一:
#return 2**(number-1)
#法二:
fib=[0]*(number+1)
fib[0]=1
fib[1]=1
for i in range(2,number+1):
fib[i]=sum(fib[:i])
return fib[number]
查看3道真题和解析