题目描述

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

理解

  • 完全蒙啊
  • 那我们就用特例先分析一下
    如果有1级台阶,那有1种
    如果有2级台阶,那有2种
    如果有3级台阶,那一定是先跳1级或者先跳2级,再跳到3级台阶上,跳1级后有2种,跳2级后有1种,共有3种跳法
  • 如果是n级台阶呢,假设有F(n)种跳法,那一定也是先跳1级或者先跳2级,再继续跳到n级台阶,跳1级后有F(n-1)种,跳2级后有F(n-2)种,故有F(n)=F(n-1)+F(n-2)
  • 可以发现本质上就是斐波那契数列问题

解题思路

和斐波那契数列写法一样
思路1

class Solution:def jumpFloor(self, number):if number == 1:return 1elif number == 2:return 2else:a = 1b = 2for i in range(2,number):a,b = b,a+breturn b

或者

class Solution:def jumpFloor(self, number):a=[1,2]if number<=2:return a[number-1]else:for i in range(2,number):a.append(a[i-1]+a[i-2])return a[number-1]

剑指offer_第8题_跳台阶相关推荐

  1. 剑指offer_第9题_变态跳台阶

    题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级--它也可以跳上n级. 求该青蛙跳上一个n级的台阶总共有多少种跳法. 理解 真是一只变态的青蛙 解题思路 解题1 如果是n级台阶,假设有F(n)种 ...

  2. 剑指offer_第14题_链表中倒数第k个结点_Python

    题目描述 输入一个链表,输出该链表中倒数第k个结点. 理解 链表详解 python数据结构之链表 解题思路 思路1 确定链表种结点个数lenth 倒数第k个结点就是第length-k+1个结点 需要考 ...

  3. 剑指offer_第11题_二进制中1的个数

    题目描述 输入一个整数,输出该数二进制表示中1的个数. 其中负数用补码表示. 理解 整数怎么转换为二进制 >>> bin(25) '0b11001' >>> bin ...

  4. 剑指offer_第7题_斐波那契数列

    题目描述 现在要求输入一个整数n 输出斐波那契数列的第n项(从0开始,第0项为0). n<=39 理解 斐波那契数列 因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子 ...

  5. 剑指offer_第20题_包含min函数的栈_Python

    题目描述 定义栈的数据结构 并在该类型中实现一个能够得到栈中所含最小元素的min函数.时间复杂度应为O(1) 理解 什么是栈 算法复杂度 解题思路 思路1 class Solution:def __i ...

  6. 剑指offer_第19题_顺时针打印矩阵_Python

    题目描述 输入一个矩阵 按照从外向里以顺时针的顺序依次打印出每一个数字 例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数 ...

  7. 剑指offer_第18题_二叉树的镜像_Python

    题目描述 将给定的二叉树,变换为其镜像 解题思路 思路1 递归 class Solution:# 返回镜像树的根节点def Mirror(self, root):if root:root.left,r ...

  8. 剑指offer_第17题_树的子结构_Python

    题目描述 输入两棵二叉树A,B 判断B是不是A的子结构. 其中空树不是任意一个树的子结构 class TreeNode:def __init__(self, x):self.val = xself.l ...

  9. 剑指offer_第16题_合并两个排序的链表_Python

    题目描述 输入两个单调递增的链表 输出两个链表合成后的链表 合成后的链表满足单调不减规则 解题思路 思路1 递归 def Merge(self, pHead1, pHead2):merge = Non ...

最新文章

  1. Linux---- Linux ---安装软件之 srpm ,rpm
  2. c语言是结构化 模块化,c语言是完全模块化和结构化的语言,怎么理解,什么是模块化和结构化...
  3. Thymeleaf——访问静态资源(static)解决方案
  4. 网络WIFI摄像机方案主控芯片最全介绍
  5. Oracle触发器详细介绍
  6. 024# 关于Adempiere过账日期和会计过账记录的解答
  7. mac和linux系统配置git tab自动补全
  8. 中国区块链市场被低估?谈谈那些被低估的虚拟货币
  9. 第十六届全国大学生智能车广东赛区高校组合汇总
  10. windows 11 去掉桌面图标的小箭头方法
  11. linux 改变输出端口,linux – 更改ssh端口后的Fail2ban设置
  12. 问题步骤记录器——Windows系统下自带的录屏神器?
  13. Euler diagram
  14. mysql 一个月以前_mysql查询昨天 一周前 一月前 一年前的数据
  15. for循环实现的一些例子
  16. 关于我在编程里学表白这件事。。。。【python表白代码】
  17. NLP——语料库信息提取和处理方法
  18. 美国Top50金融科技公司简介
  19. android系统库
  20. 共享单车蓝牙锁方案phy6222系列蓝牙芯片共享产品共享设备低成本BLE

热门文章

  1. JavaScript获取当前日期,昨天,今天日期以及任意天数间隔日期
  2. Multithread 之 introduction
  3. ERP成功全球实施十大成功案例
  4. 【组队学习】【29期】2. 计算机视觉
  5. 刻意练习:Python基础 -- Task05. 函数与Lambda表达式
  6. 如何利用BP网络进行神经网络变量筛选
  7. android app文档,android App项目需求描述文档.docx
  8. Python 可视化近 90 天的百度搜索指数 + 词云图
  9. 20个案例详解 Pandas 当中的数据统计分析与排序
  10. OpenCV 实战:3 步实现图像降噪