迭代或者说是动态规划
迭代是自底向上,而递归是自顶向下,递归会重复计算前面的项,且时间复杂度O(2^n)
迭代时间复杂度O(n),空间复杂度O(1)
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param n int整型
# @return int整型
#
class Solution:
def Fibonacci(self , n: int) -> int:
# write code here
pre, cur = 0, 1
for _ in range(n): #n轮迭代,每次迭代交换cur、pre值
pre, cur = cur, cur+pre
return pre % 1000000007 #避免大整数导致溢出