题解:
本题想起的有递归法和迭代法(动态规划法)
递归法:
在递归的过程中会产生大量的重复计算,因此,在数据量较大的时候,不是最优的解法。
class Solution:
def fib(self, n):
def dfs(n):
if n == 0:
return 0
if n == 1:
return 1
else:
return dfs(n - 1) + dfs(n - 2)
de = dfs(n)
return de
迭代法:
迭代法不会产生多余的运算量,是本题一种较好的解法。
class Solution:
def fib(self, n):
if n == 0:
return 0
if n == 1:
return 1
nums = [0] * (n+1)
nums[0] = 0
nums[1] = 1
for i in range(2,n+1):
nums[i] = (nums[i - 1] + nums[i - 2]) % 1000000007
# print(nums)
return nums[-1]