题目:假设我们有一个大小为NxN的矩阵,矩阵每一个位置是一个方块。每个位置可以是1(可通行)或0(阻挡的),maze[0][0]为起点,maze[n][n]为终点,判断是否可以从起点顺路通往终点。

const maze = [[1,0,0,0],[1,1,1,1],[0,0,0,1],[0,1,0,1]
]
var flag = false;
function test(maze, nowX, nowY) {if(maze[0][0] == 0) return false;       //如果起点不通,falselet nowWay;       //正在走哪条路if(nowX == maze.length - 1 && nowY == maze[0].length - 1 && maze[nowX][nowY] == 1) {        //如果到终点,并且终点为1flag =  true;return flag;} else {if(nowX == maze.length - 1 && maze[nowX][nowY + 1] == 0 ) {         //如果到了最下排,并且往右走不通if(!nowWay) {           //如果已经被清空标记点,无路可换return false;}nowWay = '';                //清空移动方向,回退,重新选择路,并把此点标为0maze[nowX][nowY] = 0;test(maze, nowX - 1, nowY) }if(nowX !== maze.length - 1 && maze[nowX + 1][nowY] == 1 ) {        //如果到了最右排,并且下面可以走nowWay = 'x';test(maze, nowX + 1, nowY)}if(nowY !== maze[0].length - 1 && maze[nowX][nowY + 1] == 1 ) {     //如果到了最下排,并且右面可以走nowWay = 'y';test(maze, nowX, nowY + 1)}}return flag;
}
console.log('迷宫为:', maze)
console.log(test(maze, 0, 0))

可通行:

不可通行:

如果有更好的解题思路,欢迎留言。

JS解决迷宫老鼠算法相关推荐

  1. Java与算法之(5) - 老鼠走迷宫(深度优先算法)

    小老鼠走进了格子迷宫,如何能绕过猫并以最短的路线吃到奶酪呢? 注意只能上下左右移动,不能斜着移动. 在解决迷宫问题上,深度优先算法的思路是沿着一条路一直走,遇到障碍或走出边界再返回尝试别的路径. 首先 ...

  2. python迷宫问题算法_Python解决走迷宫问题算法示例

    本文实例讲述了Python解决走迷宫问题算法.分享给大家供大家参考,具体如下: 问题: 输入n * m 的二维数组 表示一个迷宫 数字0表示障碍 1表示能通行 移动到相邻单元格用1步 思路: 深度优先 ...

  3. 老鼠迷宫java_Java与算法之(5) - 老鼠走迷宫(深度优先算法)

    小老鼠走进了格子迷宫,如何能绕过猫并以最短的路线吃到奶酪呢? 注意只能上下左右移动,不能斜着移动. 在解决迷宫问题上,深度优先算法的思路是沿着一条路一直走,遇到障碍或走出边界再返回尝试别的路径. 首先 ...

  4. 教小学妹学算法:搜索算法解决迷宫问题

    Hello,我是 Alex 007,一个热爱计算机编程和硬件设计的小白,为啥是007呢?因为叫 Alex 的人太多了,再加上每天007的生活,Alex 007就诞生了. 最近有一位小学妹 Coco 入 ...

  5. 新颖性搜索(Novelty Search,NS)算法实践——利用NS算法解决迷宫导航问题

    新颖性搜索(Novelty Search,NS)算法实践--利用NS算法解决迷宫导航问题 新颖性搜索(Novelty Search,NS)算法介绍 NS实现基础 NovItem NoveltyArch ...

  6. 神经进化算法——利用NEAT算法解决迷宫导航问题(基于NEAT-Python)

    神经进化算法--利用NEAT算法解决迷宫导航问题(基于NEAT-Python) 迷宫导航问题 迷宫环境模拟 迷宫导航智能体 迷宫环境实现 传感器数据生成 导航智能体 智能体位置更新 智能体记录存储 智 ...

  7. 利用广度优先和深度优先算法解决迷宫问题【算法设计与分析】<图搜索问题>

    实验问题: 给定一个n*n的迷宫,要求利用广度优先和深度优先算法解决迷宫问题 问题分析: 对于此问题首先要明确搜索顺序 可以分为两种方法求解问题:1.广度优先算法2.深度优先算法 (1)对于深度优先算 ...

  8. 使用深度优先搜索算法解决迷宫问题

    英文 | https://bytefish.medium.com/use-depth-first-search-algorithm-to-solve-a-maze-ae47758d48e7 翻译 | ...

  9. 【从蛋壳到满天飞】JS 数据结构解析和算法实现-AVL树(一)

    前言 [从蛋壳到满天飞]JS 数据结构解析和算法实现,全部文章大概的内容如下: Arrays(数组).Stacks(栈).Queues(队列).LinkedList(链表).Recursion(递归思 ...

最新文章

  1. 【FPGA】单端口RAM的设计(同步读、同步写)
  2. 再次认识 vertical-align
  3. python--二进制的用法
  4. 寻找实力高手长期合作
  5. 爬虫基本库的使用---urllib库
  6. Android项目开发实战—倒计时[Handler,Timer,TimerTask,Message]
  7. Windows 10 2022 年更新来了!
  8. arcsde 和oracle(双机热备)分布式安装(转载)
  9. oracle 主键列创建自增长,powerdesigner创建oracle 数据库表,设置表主键列为自动增长。 ....
  10. 数据结构-线性相关代码
  11. 大学计算机基础网络配置实验报告答案,大学计算机基础实验报告2.doc
  12. priority_queue 优先队列 hdu裸题。
  13. 【物体检测】基于matlab GUI形态学物体检测【含Matlab源码 945期】
  14. 我的世界android制作教程,《我的世界手机版》怎么制作mod制作JS教程图文攻略
  15. 数据库系统概论课后习题答案(第五版 王珊、萨师煊)
  16. AlphaGo Zero:从头开始学习
  17. matlab均值滤波实现
  18. 关于Snoop的用法
  19. 参观一家买过十年货的淘宝店是怎样的体验?——新魔术8000生产基地探秘
  20. 山西民生云认证工资_山西民生云养老资格认证手机版-山西民生云社会保险综合服务平台v2.2 最新版-007游戏网...

热门文章

  1. 几种HtmlEncode的区别
  2. 数字化会员营销系统如何撬动门店
  3. 为何银行各岗位之间的薪酬差别如此之大?
  4. 银行应用软件:零售银行业务中谁才是赢家
  5. DOS命令大全(copy)
  6. Apache Geode目录
  7. 科研论文中的地图怎么绘制?
  8. Docker踩坑,又涨知识了
  9. 反戈一击-流氓软件之父的嬗变之谜
  10. 爬虫(9)-python爬虫爬取电子书存储在txt文件中