A 上楼梯时,B 从同一楼梯往下走。每次不一定只走 1 级,最多可以一次跳过 3 级(即直接前进 4 级)。

但无论走多少级,1 次移动所需时间不变。两人同时开始走,求共有多少种“两人最终同时停在同一级”的情况(假设楼梯宽度足够,可以相互错开,不会撞上。另外,同时到达同一级时视为结束)。

举个例子,有 4 级楼梯的时候,结果共有 4 种情况.

下面是我仿照作者例子中给的代码写的js版本。

//走楼梯问题,递归方法求解.

//来写一个复制Number类型的函数

function NumCopy(num) {

var copy = num-0;

return copy;

}

let N = 4, steps = 3, memo = {};

function move(a, b) {

if([a, b] in memo) {

return memo[[a, b]];

}

if(a>b) {

return memo[[a, b]] = 0;

}

if(a == b) {

return memo[[a, b]] = 1;

}

if(b>a) {

for(let i=1; i<=steps; i++) {

for(let j=1; j<=steps; j++) {

cnt += move(NumCopy(a+i), NumCopy(b-j));

}

}

}

memo[[a, b]] = cnt;

}

let cnt = 0;

console.log(move(0, N));

这次又不知道哪错了?

走楼梯问题PHP,算法之走楼梯问题相关推荐

  1. c语言bfs算法走迷宫,使用广度优先算法(BFS)走迷宫

    前面介绍广度优先算法的时候提及了多次走迷宫,我们就真正的走一次迷宫试试! 要求如下: 输入给出迷宫矩阵的行数和列数,并给出迷宫(使用点 (.) 表示路,使用星 (*) 表示障碍物,使用S表示起点,T表 ...

  2. python侯先生爬楼梯_经典算法题:爬楼梯 ,以斐波那契数列来解题代码案例

    网上这题的解题思路主要有两种:动态规划 斐波那契数列 因为我们用斐波那契数列来解,所以我主要描述方法2. 斐波那契数列 又称 兔子数列, 指得是:1.1.2.3.5.8.13.21.--, 在数学上它 ...

  3. C++骑士走棋盘Knight tour算法(附完整源码)

    骑士走棋盘Knight tour算法 骑士走棋盘Knight tour算法的完整源码(定义,实现,main函数测试) 骑士走棋盘Knight tour算法的完整源码(定义,实现,main函数测试) # ...

  4. C语言(CED)王老师爬楼梯,他可以每次走1级或者2级,输入楼梯的级数,求不同的走法数(递归求解)

    (请先看置顶博文)https://blog.csdn.net/GenuineMonster/article/details/104495419 题目大意:王老师爬楼梯,他可以每次走1级或者2级,输入楼 ...

  5. 动态规划算法-01爬楼梯问题

    爬楼梯问题 动态规划 动态规划算法将带求解问题拆分成一系列相互交叠的子问题,通过递推关系定义各子问题的求解策略,并随时记录子问题的解,最终获得原始问题的解,避免了对交叠子问题的重复求解. 在动态规划算 ...

  6. 力扣算法 509. 斐波那契数 70. 爬楼梯 746. 使用最小花费爬楼梯

    学习内容 力扣算法 509. 斐波那契数 70. 爬楼梯 746. 使用最小花费爬楼梯 具体内容 509. 斐波那契数 斐波那契数,通常用 F(n) 表示,形成的序列称为 斐波那契数列 .该数列由 0 ...

  7. 老鼠走迷宫php算法,C语言经典算法 - 老鼠走迷官(一)

    C语言经典算法 - 老鼠走迷官(一) 说明老鼠走迷宫是递回求解的基本题型,我们在二维阵列中使用2表示迷宫墙壁,使用1来表 示老鼠的行走路径,试以程式求出由入口至出口的路径. 解法老鼠的走法有上.左.下 ...

  8. 【算法】机器人走迷宫(适用于走迷宫、最短路径算法)-20200412

    标题:机器人走迷宫(适用于走迷宫.最短路径算法) 问题描述: 一块矩形方格,含有障碍和可通行格子,求从某一点到另外一点的最短距离?N*M的矩阵: 其中,1代表障碍,0代表可通行:示例:给定二维矩阵 0 ...

  9. 棋盘算法c语言程序,C语言经典算法 - 骑士走棋盘

    搜索热词 @H_301_0@下面是编程之家 jb51.cc 通过网络收集整理的代码片段.@H_301_0@编程之家小编现在分享给大家,也给大家做个参考. 说明骑士旅游(Knight tour)在十八世 ...

最新文章

  1. yii2手动添加图片处理插件Imagine
  2. 完全企业虚拟化方案-Total Enterprise Virtualization
  3. 什么是DQL、DML、DDL、DCL
  4. linux环境重装rabbitmq,Linux系统安装RabbitMQ详细教程-Go语言中文社区
  5. linux下网络包分析工具下载,Wireshark下载-网络封包分析工具 v3.2.6 官方版 - 下载吧...
  6. u盾 签名pdf显示 “签名于修订版中删除”_Adobe Acrobat Reader DC for mac(免费pdf阅读)...
  7. js如何保证iframe里的内容,显示在父窗口
  8. Android 音频tinyalsa开发
  9. day 07总结(数字类型内置方法/字符串类型内置方法)
  10. 【C语言】为什么指明数组的列数?
  11. B VUE系列 三:vuex,vue全局变量管理和状态更新的利器
  12. QT学习之路七(qt的数据库操作)
  13. 面试题---jmeter
  14. python刷新网页_python调用浏览器刷新网页的简单示例
  15. 高考数学之快速解选择题
  16. Git创建分支和查看分支命令
  17. Loki 收集Nginx日志以 grafana 可视化展示
  18. Go语言处理Windows系统的图标ICO文件(中)
  19. 深度学习之语义分割unet算法解读
  20. 点评“最好的300款免费软件”

热门文章

  1. 转:重塑文化基因,领导者要充当“教父”角色
  2. 抖音10月的带货风向是什么?
  3. 【Mac版本】SourceTree无法push代码,提示Incorrect username or password
  4. LLVM每日谈之二十九 面向机器学习的编译器——Glow
  5. 第六届深圳国际物联网和智慧中国博览会(2014)总结
  6. 卖茶叶怎么引流?卖茶叶引流方法有哪些?茶叶店如何做推广
  7. 2013-12-8 思杨亲热他的小毛驴
  8. PopupWindow泡泡效果
  9. 模型在物理学发展中的作用
  10. 三种遗传方差(genetic variance)