LeetCode刷题(32)

来源:互联网 发布:2017年好听的网络歌曲 编辑:程序博客网 时间:2024/06/05 18:10

climbing stairs:

总共n级,每次可以选择走一级或者两级,总共有多少种走法:
递归算法:

 if n == 0:     return 0 if n == 1:     return 1 if n == 2:     return 2 return self.climbStairs(n-1) + self.climbStairs(n-2)

出现了超时,记得算法导论中讲到过,挨个算比递归复杂度要低:

        if n == 0:            return 0        if n == 1:            return 1        if n == 2:            return 2        fn_1 = 2        fn_2 = 1        for i in range(3,n+1):            fn = fn_1 + fn_2            fn_2 = fn_1            fn_1 = fn        return fn

Bingo!

原创粉丝点击