剑指offer python 牛客网 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。

版权声明:本文由lianyhai编写,不得用于商业用途,其他用途请随便。如果非要用做商业用途请给我微信打一下钱谢谢!哈哈哈哈 https://blog.csdn.net/qq_36303521/article/details/88228584

解法一,用递归

class Solution:
    def jumpFloor(self, number):
        # write code here
        flo = []
        for i in range(number):
            if i ==0:
                flo.append(1)
            elif i ==1:
                flo.append(2)
            else:
                flo.append(flo[i-1]+flo[i-2])
        return flo.pop()

运行时间:25ms
占用内存:5860k

解法二,用迭代

# -*- coding:utf-8 -*-
class Solution:
    def jumpFloor(self, number):
        # write code here
        a,b=1,2
        if number==1:
            return a
        if number == 2:
            return b
        for i in range(number-1):
            a,b = b,a+b
            
    return a
运行时间:33ms

占用内存:5728k

猜你喜欢

转载自blog.csdn.net/qq_36303521/article/details/88228584