zoukankan      html  css  js  c++  java
  • 剑指offer08-跳台阶

    题目描述

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

    示例

    输入1    返回值1

    输入4    返回值5

    知识点

    跳台阶问题(递归)

    一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。

    初始值很容易得到,当n > 2时,跳上n级台阶最后一步无外乎两种情况,从第n-1级跳一级跳上来,或是从第n-2级跳2级跳上来,因此很容易得到如下递归公式。

    F(0)= 0
    F(1)= 1
    F(2)= 2
    F(n)= F(n-1)+ F(n-2)(n > 2)

    代码

    与07斐波那契数列一样,直接写递归函数会报错,改为用数组处理

    #递归
    #
    -*- coding:utf-8 -*- class Solution: def jumpFloor(self, number): # write code here if number==1: return 1 elif number==2: return 2 else: return self.jumpFloor(number-1)+self.jumpFloor(number-2)
    #数组
    #
    -*- coding:utf-8 -*- class Solution: def jumpFloor(self, number): # write code here res=[0,1,2] while number>=len(res): res.append(res[-1]+res[-2]) return res[number]

     

  • 相关阅读:
    AngularJS:模块
    AngularJS:事件
    AngularJS:HTML DOM
    AngularJS:SQL
    AngularJS:表格
    AngularJS:Select
    shell之数组
    java实现串中找数字
    java实现串的反转
    java实现串的反转
  • 原文地址:https://www.cnblogs.com/foolangirl/p/13986904.html
Copyright © 2011-2022 走看看