题解 | #斐波那契数列#

斐波那契数列

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

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

全部评论

相关推荐

06-13 10:15
门头沟学院 Java
想去夏威夷的大西瓜在...:我也是27届,但是我现在研一下了啥项目都没有呀咋办,哎,简历不知道咋写
点赞 评论 收藏
分享
码农索隆:这种hr,建议全中国推广
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务