暴力法


思路:

按照函数调用的递归树,记录符合条件的跳跃操作:

python代码:

class Solution:def __init__(self):self.solutions = 0passdef jump(self, start, end):if start > end:return 0elif start == end:return 1return self.jump(start + 1, end) + self.jump(start + 2, end)def jumpFloor(self, number):if number == 0:return 0self.solutions = self.jump(0, number)return self.solutionsif __name__ == '__main__':s = Solution()for i in range(0, 20):s.solutions = 0print(s.jumpFloor(i), end=',')

时间复杂度 - 递归访问所有的节点

空间负责度:- 递归树可达的深度

记忆化递归


在暴力法递归中,存在很多重复的计算,因此可以对于特定台阶数记录其存在的方案数,以后直接访问记录即可。

 python代码:

class Solution:def __init__(self):self.solutions = 0self.mem = []passdef jump(self, start, end):if start > end:return 0elif start == end:return 1if self.mem[start] > 0:return self.mem[start]self.mem[start] = self.jump(start + 1, end) + self.jump(start + 2, end)return self.mem[start]def jumpFloor(self, number):self.mem = [0 for _ in range(number)]if number == 0:return 0self.solutions = self.jump(0, number)return self.solutionsif __name__ == '__main__':s = Solution()for i in range(0, 20):s.solutions = 0print(s.jumpFloor(i), end=',')

时间复杂度:

空间负责度:

动态规划


由上述的方法,抛开时间复杂度和空间复杂度,我们已经可以找到一系列输出的序列。

根据一个神奇的网站:OEIS,我们可以找到序列之间存在的关系:斐波那契数列

python代码:

class Solution:def jumpFloor(self, number):res = [0, 1, 2]while len(res) <= number:res.append(res[-1]+res[-2])return res[number]if __name__ == '__main__':s = Solution()for i in range(0, 20):print(s.jumpFloor(i), end=',')

由于用res存储了对0~number不同长度的方案数目,所以

时间复杂度:

空间复杂度:,如果只记录长度为number时的方案数,空间复杂度可降低为

剑指Offer:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法相关推荐

  1. 【剑指offer】一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。

    需求: 一只青蛙一次可以跳上1级台阶,也可以跳上2级--它也可以跳上n级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 分析: 此题的突破口在台阶数:台阶数不一样,结果就不一样:由台阶数来找规律. 台 ...

  2. 【python逻辑算法题】一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法

    文章目录 一.题目描述 二.问题分析 三.代码分析与逻辑(python3实现) 四.源码及运行结果 总结 提示:以下是本篇文章正文内容: 一.题目描述 题目:一只青蛙一次可以跳上1级台阶,也可以跳上2 ...

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

    这题是用C写的~ 在牛客上半天找不着ACM模式,练习模式里只有核心代码模式 这样用C语言编译器就不能自定义函数啊,不鸡肋吗??? 解决方法:在核心代码模式下用C++编译器(反正C++完全兼容C的不是吗 ...

  4. c语言青蛙游戏,c语言:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法?...

    一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法? 解:把n级台阶时的跳法记为f(n),当n>2时,第一次跳的时候有两种不同的选择:一是第一次只跳1级,此 ...

  5. 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法?(递归与动态规划)

    一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法? private static HashMap<Integer, Long> record = n ...

  6. 牛客网刷题java之(斐波那契数列)一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。

    题目:一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果). 分析: 对于本题,前提只有 一次 1阶或者2阶的跳法. a.如果两种跳法, ...

  7. 牛客网刷题java之变态跳台阶一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。

    题目: 一只青蛙一次可以跳上1级台阶,也可以跳上2级--它也可以跳上n级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 分析: 其实和普通的只能跳一个和两个台阶的思路是一样的,都是为了求迭代表达式. ...

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

    import java.util.Scanner;/* 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法.请用递归和循环2中方法实现答案来源:https://w ...

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

    一只青蛙一次可以跳上1级台阶也可以跳上2级求该青蛙跳上一个n级的台阶总共有多少种跳法? 解题思路 :每次跳1到n,那么如果是n阶台阶,一次就可能跳1~n阶(话说n=1000,青蛙腿肯定绑火箭了),乍一 ...

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

    文章目录 题目描述 思路 解法一:递归暴力破解 解法二: 题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果). 思路 解法一 ...

最新文章

  1. 惊了,AI已经学会刷LeetCode了!
  2. 常见Android Native崩溃及错误原因
  3. 【转载】基于ASP.NET Web Application的插件实现,附DEMO
  4. 推荐《淘宝的可伸缩高性能互联网架构 》
  5. Hadoop集群启动时NameNode未启动解决方法
  6. 车标知识学习网页开发,与Flask通过base64展示二进制图片 #华为云·寻找黑马程序员#
  7. 顶级开发人员最容易轻视的五大重要技能!
  8. iOS UITableView设置UITableViewStyleGrouped模式下section间多余间距的处理
  9. 洛谷OJ1162 填涂颜色 DFS填色法
  10. Java类和对象 详解(一)
  11. python做卡牌游戏_python实现机器人卡牌
  12. oracle关系数据库概述
  13. 教你同时分析圆通快递多个单号的物流情况
  14. 方舟服务器能不能用ce修改器,方舟生存进化CE修改器代码大全
  15. php仿微信语音条,html5的audio实现高仿微信语音播放效果
  16. 印度公开病患接触者追踪应用源代码
  17. 滚铁环,跳橡皮筋,斗鸡,打弹珠,老鹰捉小鸡…………
  18. pyecharts制作3d地图加柱状图
  19. IOS逆向笔记之HOOK实现(非越狱)
  20. 新启动计算机顺序,最新版本:计算机启动启动项设置

热门文章

  1. 【数据分析】京东平台用户画像分析
  2. retrofit原理面试,2021最新百度、头条等公司Android社招面试题目,含答案解析
  3. 前端开发--箭头函数
  4. APP渗透—Android 7.0 抓包(教程)
  5. 解决mac突然连不上wifi了(wifi出现灰色小感叹号!)
  6. 多智能体强化学习Multi agent,多任务强化学习Multi task以及多智能体多任务强化学习Multi agent Multi task概述
  7. 统计学之三大相关性系数简介(pearson、spearman、kendall)
  8. SMEC98SP加密芯片方案实例
  9. JS实现当前日期是第几周
  10. openlayers6【五】地图图层数据来源 source 详解