做题思路:
1.先创建一个dp数组来确定存储递归得到的数据
2.初始化dp数组中各元素为零,定义dp[0]=0;dp[1]=1
3.题目中已经给出斐波那契公式,将其与数组结合形成公式为: dp[i] = dp[i - 1] + dp[i - 2]
4.想办法遍历数组,有上述公式可知,元素由第一个开始依次向后存储,所以,需要从前往后开始遍历数组。
5.将由公式运算的结果返回到数组新相加的和元素中
6.最后由测试类检测是否正确。
'''递推公式:dp[i] = dp[i - 1] + dp[i - 2]'''
class Solution:
def fib(self,n:int) ->int:
if n<=2:
return 1#检测n的值是否小于2,当其值小于2时,需要返回为1
dp=[0] *(n+1)#初始化dp列表,使全部元素均为零
dp[0]=0
dp[1]=1
for i in range(2,n+1):#遍历n+1元素,从头遍历到尾。
dp[i] = dp[i - 1] + dp[i - 2]#写出递归公式
return dp[n]#返回dp中第n个元素的值,即为上述公式运算结果。
#测试
solut=Solution()
print(solut.fib(5))