题解 | #跳台阶扩展问题#
跳台阶扩展问题
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]