题目
今天的有氧运动训练内容是在一个长条形的平台上跳跃。平台有 num
个小格子,每次可以选择跳 一个格子 或者 两个格子。请返回在训练过程中,学员们共有多少种不同的跳跃方式。
结果可能过大,因此结果需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。
示例 1:
输入:n = 2 输出:2
示例 2:
输入:n = 5 输出:8
解释
本题使用动态规划,f(n)=f(n-1)+f(n-2)
类似斐波那契数列的计算,其中f(1)=1,f(2)=2
代码
class Solution:
def trainWays(self, num: int) -> int:
x_0=1
x_1=2
if num==1:
return 1
elif num==2:
return 2
elif num==0:
return 1
elif num>2:
for _ in range(2,num):
x=x_1+x_0
x_0=x_1
x_1=x
return x%1000000007