题解 | #斐波那契数列#

斐波那契数列

http://www.nowcoder.com/practice/c6c7742f5ba7442aada113136ddea0c3

法一:记忆化搜索。直接根据定义递归存在很多重复计算,时间复杂度太高。用记忆化搜索计算过的保存下来。

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param n int整型 
# @return int整型
#
class Solution:
    def Fibonacci(self , n: int) -> int:
        fib=[0]*n
        fib[0]=1
        fib[1]=1
        for i in range(2,n):
            fib[i]=fib[i-1]+fib[i-2]
        return fib[n-1]        

法二:利用辅助变量cusum,交替更新a,b。

class Solution:
    def Fibonacci(self , n: int) -> int:
        if n<=2:
            return 1
        else:
            a=1
            b=1
            for i in range(n-2):
                cusum=a+b#直接求和
                a=b#更新a
                b=cusum#更新b
            return cusum

属于动态规划?设置边界条件和状态转移方程。。。

全部评论

相关推荐

10-15 15:00
潍坊学院 golang
跨考小白:这又不是官方
投递拼多多集团-PDD等公司10个岗位
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务