美文网首页
python 爬楼梯(lintcode)

python 爬楼梯(lintcode)

作者: 仁暮 | 来源:发表于2017-09-09 20:49 被阅读0次

描述:

爬楼梯
原题地址:http://www.lintcode.com/zh-cn/problem/climbing-stairs/
假设你正在爬楼梯,需要n步你才能到达顶部。但每次你只能爬一步或者两步,你能有多少种不同的方法爬到楼顶部?

样例

比如n=3,1+1+1=1+2=2+1=3,共有3种不同的方法
返回 3

思路

这道题本质上就是一道斐波那契数列的应用
假设一共有10阶楼梯,每步可以爬1步或者2步,那么你爬到10阶一共有两种方法,从8阶爬2步,或从9阶爬1步,那么爬到9阶也是这样,那这就是一共基本的斐波那契数列。

代码

class Solution:
    """
    @param n: An integer
    @return: An integer
    """
    def climbStairs(self, n):
        # write your code here
        f = [0, 1]
        for i in range(2, n+2):
            f.append(f[i-1] + f[i-2])
        return f[n+1]

递归算法

def fib(n):
    if n == 1:
        return 1
    if n == 2:
        return 1
    else:
        return fib(n-1) + fib(n-2)

学习

ted斐波那契数列:http://open.163.com/movie/2014/2/N/O/M9HKRT25D_M9HNA0UNO.html
还有一种快速求幂法:http://blog.csdn.net/qmickecs/article/details/70405354

相关文章

  • python 爬楼梯(lintcode)

    描述: 爬楼梯原题地址:http://www.lintcode.com/zh-cn/problem/climbin...

  • lintCode 爬楼梯

    假设你正在爬楼梯,需要n步你才能到达顶部。但每次你只能爬一步或者两步,你能有多少种不同的方法爬到楼顶部? Exam...

  • 合并两个排序链表

    LintCode 165 题 使用 python 语言实现:

  • OJ lintcode 爬楼梯

    假设你正在爬楼梯,需要n步你才能到达顶部。但每次你只能爬一步或者两步,你能有多少种不同的方法爬到楼顶部? 假设你正...

  • 翻转链表

    LintCode 35 题 使用 python 语言实现: 图解递归方法:

  • LintCode111 爬楼梯

    问题: 假设你正在爬楼梯,需要n步你才能到达顶部。但每次你只能爬一步或者两步,你能有多少种不同的方法爬到楼顶部? ...

  • [容易]111.爬楼梯

    我是小小强,这是我的第12篇原创文章,阅读需要大约10分钟。 题目 LintCode:爬楼梯 描述 假设你正在爬楼...

  • 2018-05-08

    跳台阶引起的for循环和递归地比较思考 lintcode上面的一个题目: 描述 假设你正在爬楼梯,需要n步你才能到...

  • LeetCode | 0070. Climbing Stairs

    LeetCode 0070. Climbing Stairs爬楼梯【Easy】【Python】【动态规划】 Pro...

  • 程序员常用的刷题网站

    1、Lintcode Lintcode.com——LintCode网站是国内较大的在线编程&测评网站。此网站提供各...

网友评论

      本文标题:python 爬楼梯(lintcode)

      本文链接:https://www.haomeiwen.com/subject/szuajxtx.html