剑指Offer:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法
暴力法
思路:
按照函数调用的递归树,记录符合条件的跳跃操作:
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级的台阶总共有多少种跳法相关推荐
- 【剑指offer】一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
需求: 一只青蛙一次可以跳上1级台阶,也可以跳上2级--它也可以跳上n级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 分析: 此题的突破口在台阶数:台阶数不一样,结果就不一样:由台阶数来找规律. 台 ...
- 【python逻辑算法题】一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法
文章目录 一.题目描述 二.问题分析 三.代码分析与逻辑(python3实现) 四.源码及运行结果 总结 提示:以下是本篇文章正文内容: 一.题目描述 题目:一只青蛙一次可以跳上1级台阶,也可以跳上2 ...
- [递归]一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
这题是用C写的~ 在牛客上半天找不着ACM模式,练习模式里只有核心代码模式 这样用C语言编译器就不能自定义函数啊,不鸡肋吗??? 解决方法:在核心代码模式下用C++编译器(反正C++完全兼容C的不是吗 ...
- c语言青蛙游戏,c语言:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法?...
一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法? 解:把n级台阶时的跳法记为f(n),当n>2时,第一次跳的时候有两种不同的选择:一是第一次只跳1级,此 ...
- 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法?(递归与动态规划)
一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法? private static HashMap<Integer, Long> record = n ...
- 牛客网刷题java之(斐波那契数列)一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
题目:一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果). 分析: 对于本题,前提只有 一次 1阶或者2阶的跳法. a.如果两种跳法, ...
- 牛客网刷题java之变态跳台阶一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
题目: 一只青蛙一次可以跳上1级台阶,也可以跳上2级--它也可以跳上n级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 分析: 其实和普通的只能跳一个和两个台阶的思路是一样的,都是为了求迭代表达式. ...
- 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
import java.util.Scanner;/* 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法.请用递归和循环2中方法实现答案来源:https://w ...
- 一只青蛙一次可以跳上1级台阶也可以跳上2级求该青蛙跳上一个n级的台阶总共有多少种跳法?
一只青蛙一次可以跳上1级台阶也可以跳上2级求该青蛙跳上一个n级的台阶总共有多少种跳法? 解题思路 :每次跳1到n,那么如果是n阶台阶,一次就可能跳1~n阶(话说n=1000,青蛙腿肯定绑火箭了),乍一 ...
- (java)跳台阶:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
文章目录 题目描述 思路 解法一:递归暴力破解 解法二: 题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果). 思路 解法一 ...
最新文章
- 惊了,AI已经学会刷LeetCode了!
- 常见Android Native崩溃及错误原因
- 【转载】基于ASP.NET Web Application的插件实现,附DEMO
- 推荐《淘宝的可伸缩高性能互联网架构 》
- Hadoop集群启动时NameNode未启动解决方法
- 车标知识学习网页开发,与Flask通过base64展示二进制图片 #华为云·寻找黑马程序员#
- 顶级开发人员最容易轻视的五大重要技能!
- iOS UITableView设置UITableViewStyleGrouped模式下section间多余间距的处理
- 洛谷OJ1162 填涂颜色 DFS填色法
- Java类和对象 详解(一)
- python做卡牌游戏_python实现机器人卡牌
- oracle关系数据库概述
- 教你同时分析圆通快递多个单号的物流情况
- 方舟服务器能不能用ce修改器,方舟生存进化CE修改器代码大全
- php仿微信语音条,html5的audio实现高仿微信语音播放效果
- 印度公开病患接触者追踪应用源代码
- 滚铁环,跳橡皮筋,斗鸡,打弹珠,老鹰捉小鸡…………
- pyecharts制作3d地图加柱状图
- IOS逆向笔记之HOOK实现(非越狱)
- 新启动计算机顺序,最新版本:计算机启动启动项设置
热门文章
- 【数据分析】京东平台用户画像分析
- retrofit原理面试,2021最新百度、头条等公司Android社招面试题目,含答案解析
- 前端开发--箭头函数
- APP渗透—Android 7.0 抓包(教程)
- 解决mac突然连不上wifi了(wifi出现灰色小感叹号!)
- 多智能体强化学习Multi agent,多任务强化学习Multi task以及多智能体多任务强化学习Multi agent Multi task概述
- 统计学之三大相关性系数简介(pearson、spearman、kendall)
- SMEC98SP加密芯片方案实例
- JS实现当前日期是第几周
- openlayers6【五】地图图层数据来源 source 详解