题目: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]