笔试题 一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。该题有三种解法:1.递归的方法求解斐波那契数列、2.用概率与统计的数学方法解决,3.动态规划

  • 该题有三种解法:
    • 一、递归的方法求解斐波那契数列
    • 二、用概率与统计的数学方法解决
    • 三、动态规划

)

该题有三种解法:

一、递归的方法求解斐波那契数列

有j个台阶的时候,可以一次跳1步,再跳完j-1个台阶,也可以一次跳两步,再跳j-2个台阶,故f(j)=f(j-1)+f(j-2),聪明的学习者可以发现,这一步和斐波那契数列特别像,没错!这就是一个斐波那契数列,用递归的方法来解决就可以了。
求解斐波那契数列的两种方法在这篇博客中:https://blog.csdn.net/qq_36079986/article/details/110246881

def fbnq(n):if n ==0:return 0elif n ==1:return 1else:return fbnq(n-2) + fbnq(n-1)
print(fbnq(n))

二、用概率与统计的数学方法解决

之前面试的时候第一次见到这道题,洋洋洒洒写了一大页,用概率与统计的方法解决了,具体方法在另外一篇博客中。

三、动态规划

public static int MaxChildArrayOrder(int a[]) {int n = a.length;int temp[] = new int[n];//temp[i]代表0...i上最长递增子序列for(int i=0;i<n;i++){temp[i] = 1;//初始值都为1}for(int i=1;i<n;i++){for(int j=0;j<i;j++){if(a[i]>a[j]&&temp[j]+1>temp[i]){//如果有a[i]比它前面所有的数都大,则temp[i]为它前面的比它小的数的那一个temp+1取得的最大值temp[i] = temp[j]+1;}}}int max = temp[0];//从temp数组里取出最大的值for(int i=1;i<n;i++){if(temp[i]>max){max = temp[i];}}return max;}

笔试题:一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。该题有三种解法:递归的方法求解斐波那契数列、用概率与统计的数学方法解决,3.动态规划相关推荐

  1. C语言实现求解斐波那契数列的四种方法及优化处理(递归,迭代,特殊性质公式,矩阵快速幂)

    众所周知,斐波那契数列是非常经典的一个数列,它的数学公式如下 为了便于观察,我们列出它的几项:0  1  1  2  3  5  8  13  21...... 下面我们将介绍四种方法来用C语言计算机 ...

  2. 斐波那契递归调用次数_递归求解斐波那契数列的时间复杂度——几种简洁证明...

    TL:DR: 暴力递归求解斐波那契数列的时间复杂度的紧界不是 ,而是 . 本文将给出几个简洁证明 用最暴力的方法求解斐波那契数列,时间复杂度是多少?具体地说,就是求下面这个程序的复杂度: def fi ...

  3. 数据结构与算法--再谈递归与循环(斐波那契数列)

    再谈递归与循环 在某些算法中,可能需要重复计算相同的问题,通常我们可以选择用递归或者循环两种方法.递归是一个函数内部的调用这个函数自身.循环则是通过设置计算的初始值以及终止条件,在一个范围内重复运算. ...

  4. 求解斐波那契数列(Fibonacci Numbers)算法居然有9种,你知道哪几种吗?

    By LongLuo 斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为&q ...

  5. C语言数据结构----递归的应用(斐波拉契数列、汉诺塔、strlen的递归算法)

    本节主要说了递归的设计和算法实现,以及递归的基本例程斐波拉契数列.strlen的递归解法.汉诺塔和全排列递归算法. 一.递归的设计和实现 1.递归从实质上是一种数学的解决问题的思维,是一种分而治之的思 ...

  6. 迭代与递归的区别(斐波那契数列和小猴子摘桃)

    递归算法代码简洁清晰,易于验证,但时间上与空间消耗较大,因为他有嵌套函数调用,如果调用层数太深,会存在堆栈溢出的风险,而迭代的形式相复杂,但效率较高,往往有这样的观点,等不用递归就不用递归,递归都可以 ...

  7. [python]练习之递归和循环实现斐波拉契数列

    1 # 程序功能:用递归和循环实现斐波拉契数列 2 # 0 1 1 2 3 5 8 13 21 34 3 4 def digui_fibo(number): 5 if number == 1: 6 r ...

  8. 递归经典应用之斐波那契数列

    递归经典应用之斐波那契数列 (一)递归概念 将复杂问题 递推分解为最简问题 然后将结果回归的过程 Windows - Linux Linux = Linux is not Unix 使用方法: 自己调 ...

  9. python一只青蛙一次可以_40.细说递归之二:Python求解斐波那契数列

    本篇通过青蛙跳台阶.兔子数列(斐波那契数列)问题进一步理解递归思想的魅力. 上一篇最后的题目如下: 一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶.求该青蛙跳上一个n级的台阶总共有多少种跳法? 归纳 ...

最新文章

  1. golang bytes.buffer 字节缓冲器 简介
  2. python爬虫学习(一)
  3. linux lspci信息 详解_Linux引导之EFI SHELL详解
  4. 小容量单片机生成pdf文件
  5. mysql 5.6.37 winx64_Mysql 5.6.37 winx64安装双版本mysql笔记记录
  6. 数据科学 IPython 笔记本 7.6 Pandas 中的数据操作
  7. 三星Note 10最新渲染图曝光:与之前爆料基本一致
  8. indexOf和lastIndexOf的使用
  9. java计算机毕业设计运动会管理系统源码+mysql数据库+系统+lw文档+部署
  10. 使用UltraEdit编辑器之HelloWorld的实现
  11. 计算机组成原理思维导图——中央处理器(CPU)
  12. 给IDEA换个酷炫的主题,真的太好看了!
  13. pywintypes.error: (6, ‘SetClipboardData‘, ‘句柄无效。‘)
  14. 每日三思:微信小程序多层级父子组件如何在子组件滚动加载
  15. 小米2022校招前端实习一面总结
  16. python 经典ppt_Python讲解ppt
  17. 电子器件系列十四:缓冲器
  18. GeekOS操作系统Project4
  19. mysql doesnt have a default value_导入mysql数据的时候提示Field * doesn't have a default value解决方法...
  20. 线上打印马上送,支持线上打印文档的软件

热门文章

  1. Zephyr Kernel 设备驱动和设备模型(一)
  2. html最多显示两行,css 实现两行或多行文本溢出显示省略号(...)
  3. 为什么数据库不适用于容器
  4. java线程池newfi_java线程池
  5. 团队作业-Beta冲刺(3)
  6. 22-09-20 西安 谷粒商城(04)Redisson做分布式锁、布隆过滤器、AOP赋能、自定义注解做缓存管理、秒杀测试
  7. LeetCode-1694. 重新格式化电话号码【字符串,分块】
  8. 活非光合细胞中ROS的主要从哪里细胞来源?
  9. 织梦后台内容编辑器不显示
  10. 凸包旋转卡壳(andrew)