memo = {} defrecursion_memo(n, memo): if n==1or n ==2: return n if n in memo.keys(): return memo[n] value = recursion_memo(n-1, memo) + recursion_memo(n-2, memo) memo.update({n:value}) return memo[n]
动态规划
在暴力搜索里提到了,$f(n)=f(n-1)+f(n-2)$
1 2 3 4 5 6 7 8 9 10
defdynamic(n): if n == 1or n == 2: return n result = [0]*(n) result[0] =1 result[1] =2 for i inrange(2, n): result[i] = result[i-1]+result[i-2] return result[n-1]