# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param number int整型 # @return int整型 # class Solution: def jumpFloor(self , number: int) -> int: # 递归形式: # if number <= 1: # return 1 # # 走上最后一梯只有两种方式,一种是从f(n-1)再向上跳一级,另一种是从f(n-2)再向上跳两级。所以最后一梯的跳法应该是前面两种跳法的总和。 # return self. jumpFloor(number - 1) + self.jumpFloor(number - 2) # 初始状态 # 只有一级台阶的时候只有一种跳法 f1 = 1 # 有2级台阶的时候有2种跳法 f2 = 2 if number == 1: return f1 if number == 2: return f2 # 从有1级台阶和2级台阶的情况向后递推。 fn_jian_1 = f2 fn_jian_2 = f1 for _ in range(3, number+1): # 走上最后一梯只有两种方式,一种是从f(n-1)再向上跳一级,另一种是从f(n-2)再向上跳两级。所以最后一梯的跳法应该是前面两种跳法的总和。 fn = fn_jian_1 + fn_jian_2 fn_jian_2 = fn_jian_1 fn_jian_1 = fn return fn