动态规划---509.斐波那契

做题思路:

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))

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值