青蛙跳台阶

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

答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。

示例 1:

输入:n = 2
输出:2
示例 2:

输入:n = 7
输出:21
示例 3:

输入:n = 0
输出:1

题解

class Solution:"""解题思路: 递归算法1.当台阶数为n对应的走法有f(n)种: n-->f(n), n-1-->f(n-1), n-2-->f(n-2)......f(2)-->2, f(1)-->12.我们假设分两种情况走1.当第一步走一个台阶 有k1种走法2.当第一步走两个台阶 有k2中走法3.f(n) = k1 + k24.我们发现当第一步走一个台阶已经确定的情况下:1.k1种走法就等于 f(n-1) 种走法5.我们发现当第一步走两个台阶已经确定的情况下:1.k2种走法就等于f(n-2)种走法6.即得到递推公式f(n) = f(n-1) + f(n-2)3.当n==1 or n==2时, return n, 作为终止条件"""def __init__(self):self.memo = dict()def numWays(self, n: int) -> int:if n == 1 or n == 2:return nif n == 0:return 1if self.memo.get(n):return self.memo.get(n)self.memo[n] = (self.numWays(n - 1) + self.numWays(n - 2)) % 1000000007return self.memo[n]

python 青蛙跳台阶问题相关推荐

  1. python 爱英斯坦台阶问题_关于Python青蛙跳台阶的问题详细讲解

    Python青蛙跳台阶的问题 问题: 一只青蛙要跳上n层高的台阶,一次能跳一阶,也可以跳2阶,请问这只青蛙跳上n层高的台阶有多少种跳法? 背景知识点补充(了解) 斐波那契数列 斐波那契数列(Fibon ...

  2. python青蛙跳台阶_Python中跳台阶、变态跳台阶与矩形覆盖问题的解决方法

    前言 跳台阶.变态跳台阶.矩形覆盖其实都和斐波那契数列是一类问题,文中通过示例代码介绍的非常详细,下面话不多说了,来一起看看详细的介绍吧. 跳台阶 问题描述: 一只青蛙一次可以跳上1级台阶,也可以跳上 ...

  3. python青蛙跳台阶_Python算法题(一)——青蛙跳台阶

    题目一(青蛙跳台阶): 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 分析: 假设只有一级台阶,则总共只有一种跳法: 假设有两级台阶,则总共有两种跳法: ...

  4. python青蛙跳台阶问题_面试题10- II. 青蛙跳台阶问题

    一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶.求该青蛙跳上一个 n 级的台阶总共有多少种跳法. 答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1 ...

  5. Python || 青蛙跳台阶

    一只青蛙一次可以跳上1级台阶,也可以跳上2级.请问该青蛙跳上一个n级的台阶总共有多少种跳法. 输入台阶数,输出一共有多少种跳法.         输入: 3         输出: 3 #一只青蛙一次 ...

  6. python:青蛙跳台阶

    题目:一只青蛙一次可以跳上1级台阶,也可以跳上2级. 求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果). 方法一:可以列举,发现是一个斐波那契数列,这里就不多说了 方法二:直接写 ...

  7. python青蛙跳台阶_Python之青蛙跳台阶

    一直青蛙可以调1个台阶或者一次跳2个台阶,一共N个台阶,有多少种跳法? #!/usr/bin/env python #coding=utf-8 def qingwa(step): if step &l ...

  8. 面试题:基于Python的青蛙跳台阶两种解法

    问题 一只青蛙要跳上 n 层高的台阶,一次能跳一级,也可以跳两级,请问这只青蛙有多少种跳上这个 n 层高台阶的方法? 递归 设青蛙跳上 n 级台阶有 f(n)种方法,把这 n 种方法分为两大类,第一种 ...

  9. python比赛积分类算法题_Python算法题(一)——青蛙跳台阶

    题目一(青蛙跳台阶): 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 分析: 假设只有一级台阶,则总共只有一种跳法: 假设有两级台阶,则总共有两种跳法: ...

最新文章

  1. 《LeetCode力扣练习》剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 Java
  2. python 堆排序的两种实现
  3. 爬虫篇——User-Agent爬取备用及存储
  4. OpenCV在图像中添加文字,画点,画直线
  5. spark 上下游shuffle结果的存放获取
  6. 从0开始搭建产品经理AI知识框架:语音识别与合成
  7. FFmpeg进行屏幕录像和录音
  8. 智能优化算法:风驱动优化算法-附代码
  9. thinkphp5--多文件入口设置
  10. 《21天学通Java(第7版)》——VC程序员的学习笔记2
  11. Java速成:Boot入门
  12. matlab浮点转定点的函数,FPGA基础知识17(Matlab中滤波器的定点化 浮点运算转换为定点运算)...
  13. 如何用计算机管理员权限,怎么打开管理员权限,电脑怎么用管理员权限
  14. jQuery + JavaScript 实现的动态添加文本框功能 和 动态删除文本框功能(二)
  15. python3.6 pillow,【Pillow】Python图像处理
  16. 雪球网热股榜--Ajax动态网页爬虫
  17. java程序写一个数的平方根_Java程序查找给定数字的平方根
  18. 【科学文献计量】networkx绘制网络图的基本属性,图形读写以及无向/有向图形绘制详解
  19. 30个HTML+CSS前端开发案例(四)
  20. 判断质数和合数python代码_「质数和合数」C语言:质数和合数的判断 - 金橙教程网...

热门文章

  1. 88. Leetcode 剑指 Offer 14- I. 剪绳子 (动态规划-基础题)
  2. 25. Leetcode 143. 重排链表 (链表-基础操作类-重排链表)
  3. NTU课程笔记 CE7454 (3):MLPCNN
  4. 听说你想去大厂看妹子,带你看看腾讯产品运营实习面经
  5. ubuntu查看内存或cpu使用情况
  6. opcclient远程连接opc服务器_软件 | 服务器远程连接软件MobaXterm
  7. Python入门100题 | 第048题
  8. day19 生成器函数
  9. 机器学习实战读书笔记--logistic回归
  10. Tomcat7启动报Error listenerStart错误--转载