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

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

示例 1:

输入:n = 2

输出:2

示例 2:

输入:n = 7

输出:21

解题思路

动态规划

我们根据台阶来推出子问题:跳上n阶台阶的前提是跳上n-1阶或者n-2阶,所以我们要求得N阶台阶的跳法,只要知道N-1阶的跳法和n-2阶的跳法,将两者相加就得到了n阶台阶最优解。

这里就涉及到了动态规划的最优子结构,也就是问题的最优解由子问题的最优解得到。此外,在跳到n-1、n-2阶之后,如果选择下一种跳法,不会影响到N-1、N-2阶台阶最优解的决策,符合无后效性。还有,n-1和n-2都包括了n-3阶台阶跳两步和一步,这里N-3在这里就被重复计算了,符合重复子问题。

算法复杂度:时间复杂度O(N)

空间复杂度O(N)

Python

class Solution(object):

def numWays(self, n):

"""

:type n: int

:rtype: int

"""

if n <= 1:

return 1

dp = [1 for i in range(n+1)]

for i in range(2, n+1):

dp[i] = (dp[i-1] + dp[i-2]) % 1000000007

return dp[n]

斐波那契

这里的台阶问题很符合斐波那契数列的思想,其实就是在求斐波那契数列的第n个数

Python

class Solution(object):

def numWays(self, n):

"""

:type n: int

:rtype: int

"""

if n <= 1:

return 1

a, b = 1, 1

while n > 1:

a, b = b, a+b

n -= 1

return b % 1000000007

python青蛙跳台阶问题_面试题10- II. 青蛙跳台阶问题相关推荐

  1. 面试题10.3-变态跳台阶

    题目 一只青蛙一次可以跳上1级台阶,也可以跳上2级--它也可以跳上n级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 代码 public class Solution {public int Jump ...

  2. python中exception类的_面试题 | 列举几个Python中的标准异常类?

    [摘要]今天给大家解答一道Python常见的面试题,希望这个面试栏目,给那些准备面试的同学,提供一点点帮助!小编会从最基础的面试题开始,每天一题.如果参考答案不够好,或者有错误的话,麻烦大家可以在留言 ...

  3. python爬虫能秒杀么_面试题之用python爬取并夕夕不同时段秒杀商品信息

    先上效果图吧(因为确实也是刚入门,很多细节没有注意到的,各位尽管提出来) 并夕夕很多时候都在不停的有秒杀商品的活动,对于价格问题,我就没法讨论了,但是人家能吸引到这么多流量,真本事还是有些的. 我只在 ...

  4. python 广告联盟跳转链接_抖音视频加入广告跳转链接怎么做?

    抖音信息流广告是指将广告主投放的视频广告在抖音推荐频道的信息流中进行展示,同时支持从视频广告点击跳转至广告主设置的落地页,帮助广告主在抖音实现营销推广的目的.以下我们就来介绍下抖音视频加入广告跳转链接 ...

  5. python函数参数定义不合法_面试题 - Operater - 博客园

    1.执行这行代码结果是多少[i**i for i in range(3)] 我写的答案是[0,1,3],忘记了0**0是1 [1,1,3] 2.关于python内存管理:变量可以无需指定类型,可以使用 ...

  6. jsp超链接中怎么跳转页面跳转页面_在页面点击超链接跳到别的页面,方法是什么?...

    这个是后台做了路由的,他们跳转的位置并不是你所看到的这个页面,而且是这个页面的模板页 为了提供初始化参数,对servlet或JSP页面定义一个定制URL或分配一个安全角色,必须首先给servlet或J ...

  7. python好用的软件_【分享|10款超好用的辅助Python的软件,初学者请查收!】- 环球网校...

    [摘要]在这个科学技术高速发展的时代,越来越多的人都开始选择学习编程软件,那么首先被大家选择的编程软件就是python,也用在各行各业之中,并被大家所熟知,所以也有越来越多的python学习者关注Py ...

  8. python图像处理的书籍推荐_推荐:10个Python图像处理工具

    概述了一些常用的Python库,它们提供了一种简单直观的图像转换方法. 介绍 在我们今天的世界中有很多的数据,而图像是这些数据中的重要组成部分.但是,要使用这些图像,需要对它们进行处理.因此,图像处理 ...

  9. java点击图片跳转链接_[Java教程]关于Javascript图片跳转学习

    [Java教程]关于Javascript图片跳转学习 0 2015-01-15 19:00:15 刚学习javascript,看了Javascript DOM编程艺术,学习了图片翻转的原理. 要求:点 ...

最新文章

  1. 记我的一次电话面试 (转)
  2. URAL - 1297 Palindrome(后缀数组+RMQ)
  3. mysql characteristic_MySQL存储过程定义中的特性(characteristic)的含义
  4. 从贪心选择到探索决策:基于强化学习的多样性排序
  5. 没有显示屏怎么启动服务器,中关村xp系统提示“没有启动服务器服务”如何解决...
  6. IOS资源丰富的听书软件<白鲨听书>
  7. Sphinx 初始化项目
  8. e记法 python 底数_干货满满,30个Python源代码!
  9. 大数据可视化的方法和价值
  10. 使用OpenSSL转换X509 PEM与PFX证书
  11. python while循环语句
  12. 如何深入学习Android系统
  13. 算法竞赛入门经典题解目录
  14. uniapp H5页面 点击图片放大预览
  15. 计组(六)流水线技术
  16. JavaScript(JS)的简单了解
  17. 文昌京东配送小哥的那些骄傲事
  18. 使用ImageJ测图片中物体的平均灰度值
  19. iPhone 8 和 8 Plus 发布!双面全玻璃设计,配置提升
  20. oracle 11g duplicate database基于备份复制数据库(三)

热门文章

  1. 深入理解css3中的flex-grow、flex-shrink、flex-basis (转)
  2. 【每天更新】2022年最新WordPress主题下载,外贸独立站商城/企业网站/个人博客模板 2022-5-15
  3. ❤️数据可视化❤️:基于Echarts + GeoJson实现的地图视觉映射散点(气泡)组件【12】 - 湖南省
  4. java老游戏拿着剑闯关打怪_一款老游戏拿着剑闯关打怪
  5. 大学计算机基础简明教程第二版答案,操作系统基础 大学计算机基础简明教程.ppt...
  6. POJ - 3155 Hard Life
  7. 第三章 Dalvik 可执行格式与字节码规范
  8. 宝宝开火车~ 升级了--学习,益智,火车,儿童,iphone手机游戏
  9. Python实现微信机器人
  10. 软考中级 真题 2016年上半年 系统集成项目管理工程师 基础知识 上午试卷