一题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
# -*- coding:utf-8 -*-
#一共多少层 1, 2, 3, 4, 5, 6, 7---
#多少种跳法 1, 2, 3, 5, 8, 13, 21---
class Solution:
def jumpFloor(self, number):
# write code here
a=1
b=2
if number==1:
return a
if number==2:
return b
for i in range(number-1):
a,b=b,a+b
return a
二题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
# -*- coding:utf-8 -*-
#一共多少层 1, 2, 3, 4, 5, --
#多少种跳法 1, 2, 4, 8, 16, ------
#f(n) = f(n-1)+f(n-2)+…+f(1)
#f(n-1) = f(n-2)+ f(n-3)…+f(1)
#两式相减,得到f(n) = 2f(n-1).
class Solution:
def jumpFloorII(self, number):
# write code here
if number <= 0:
return 0
if number == 1:
return 1
if number == 2:
return 2
dp=[0]*(number+1)
for i in range(2,n+1):
dp[i[=2*dp[i-1]
return dp[-1]
class Solution:
def jumpFloorII(self, number):
# write code here
if number <= 0:
return 0
else:
return pow(2,number-1)
#return 2**(number-1)
本文详细解析了两只青蛙跳上n级台阶的不同跳法数量计算问题。第一只青蛙每次可以跳1级或2级台阶,第二只青蛙可以跳任意级台阶。通过递归和动态规划方法,展示了如何高效计算出所有可能的跳法。
735

被折叠的 条评论
为什么被折叠?



