题目
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。
求该青蛙跳上一个n级的台阶总共有多少种跳法。
思路
ans[n]=ans[n-1]+ans[n-2]+ans[n-3]+…+ans[n-n],
ans[n-1]=ans[n-2]+ans[n-3]+…+ans[n-n],
ans[n]=2*ans[n-1]。
解答
方法一
class Solution:
def jumpFloorII(self, number):
if number == 1:
return 1
ret = 1
a = 1
for i in range(2, number+1):
ret = 2 * a
a = ret
return ret
方法二
class Solution:
def jumpFloorII(self, number):
return pow(2, number-1)
本文详细解析了青蛙跳台阶问题,通过递推公式ans[n]=2*ans[n-1],给出了两种有效的解决方法,包括迭代算法实现。该问题属于经典的动态规划案例,对于理解递归和动态规划有很好的帮助。
1176

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



