题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
解题思路
记忆化递归
之前的题目是一次只能跳1或者2个台阶,现在是可以跳n个台阶,因此可以使用一个循环来分别加n-1,n-2, n-3,...,n - n。
class Solution: def __init__(self): self._dict = {} def jumpFloorII(self, number): def dfs(n): if n == 0: return 1 if n < 0: return 0 if n == 1: return 1 if n in self._dict: return self._dict[n] self._dict[n] = 0 for i in range(1, number + 1): self._dict[n] += dfs(n - i) return self._dict[n] res = dfs(number) return res S = Solution() print(S.jumpFloorII((5)))