(上图出自B站韩顺平教育)

从上图的(1,1)处,寻找到(6,5)处的路线,红色格子是障碍

public class MiGong {
public static void main(String[] args) {
//思路:
//1.先创建迷宫,用二维数组map表示
//2.规定数组的元素值:0表示可以走,1表示障碍
int[][] map=new int[8][7];
//3.将最上面的一行和最下面的一行全部设置为1
for (int i = 0; i < 7; i++) {
map[0][i]=1;
map[7][i]=1;
}
//4.将最右面的一列和最左面的一列全部设为1
for (int i = 0; i < 8; i++) {
map[i][0]=1;
map[i][6]=1;
}
//5.设置障碍物
map[3][1]=1;
map[3][2]=1;
//使用findWay
T t1 = new T();
t1.findWay(map,1,1);
System.out.println("=======找路的情况如下=========");
for (int[] ints : map) {
for (int anInt : ints) {
System.out.print(anInt+"\t");
}
System.out.println();
}
}
}
class T{
//使用递归回溯的思想来解决
//找到路径就返回true,否则false
//i,j就是老鼠的位置,初始化位置为(1,1)
//因为是递归找路,所以先规定may各个值的含义
// 0表示实际可以走的路 1表示障碍物 2表示探索时假设可以走的路,也是结果 3表示走过的路,但是死路
//当map[6][5] =2 表示找到路,可以结束,否则继续找
//先确定老鼠找路的策略 下->右->上->左
public boolean findWay(int[][] map,int i,int j){
if(map[6][5]==2){ //找到路
return true;
}else{
if(map[i][j] ==0) {//说明可以走
//先假设可以走通
map[i][j] = 2;// 这个点能不能走通需要看下一个点能不能继续走
//使用找路策略,来确定该位置是否真的可以走通
if(findWay(map,i+1,j)){ //先走下
return true;
}else if(findWay(map,i,j+1)) {//走右
return true;
}else if(findWay(map,i-1,j)) {//走上
return true;
}else if(findWay(map,i,j-1)) {//走左
return true;
}else{
map[i][j]=3;
return false;
}
}else{
return false;
}
}
}
}

java递归算法之老鼠找路的更多相关文章

  1. Java web项目引用java项目,类型找不到

    Java web项目引用java项目,类型找不到 错误信息: java.lang.ClassNotFoundException: org.codehaus.jackson.map.ObjectMapp ...

  2. Linux中命令行编译java接口总是提示找不到符号的疑难杂症的解决

    今天学习java的接口,在linux的命令行下写代码练练手吧,啪啪啪一顿猛敲,写了一个接口UsbInserface,UDisk继承UsbInterface,写完了那就编译到bin目录呗. 当时写程序的 ...

  3. Java工程师成神之路思维导图

    前面看Hollis的微信公众号更新了Java工程师成神之路的文档,感觉里面的内容清晰.齐全,可以用来审视自己,也能够知道自己在那些方面可以继续前行,想着有时间把它画下来,画下来之后分享出来. 主要内容 ...

  4. 转:Java工程师成神之路~(2018修订版)

    转: http://www.hollischuang.com/archives/489 阿里大牛珍藏架构资料,点击链接免费获取 针对本文,博主最近在写<成神之路系列文章> ,分章分节介绍所 ...

  5. java.io.FileNotFoundException(系统找不到指定的路径。)

    报错:java.io.FileNotFoundException(系统找不到指定的路径.) 解决方法: 1.检查文件路径是否正确 2.另外,使用OutputStream时,如果文件不存在,会自动创建文 ...

  6. Java Hello World 错误 找不到或无法加载主类

    Java 有几年没用了 生疏了好多 最近又捡起来 结果第一个Hello World 就在黑窗口内报错! 遇到几个小问题. 1. 安装JDK后 在 CMD 中 执行 java -version 正常 因 ...

  7. 033.[转] Java 工程师成神之路 | 2019正式版

    Java 工程师成神之路 | 2019正式版 原创: Hollis Hollis 2月18日 https://mp.weixin.qq.com/s/hlAn6NPR1w-MAwqghX1FPg htt ...

  8. 【全网最优方法】JAVA初学:错误: 找不到或无法加载主类HelloWorld

    JAVA初学:错误: 找不到或无法加载主类 HelloWorld 我这是看的黑马2019网课(B站)出现的问题. 放一下别人的图,我也是大概的问题:就是javac没问题,java却无论怎么弄都报错. ...

  9. java不能卸载,提醒路劲找不到 *:\Java\

    安装MyEclipse是提醒找不到java安装路劲 :*:\Java\jdk1.7.0_80 想卸载java重装也没法卸载,还是同样的提醒 找不到java安装路劲 :*:\Java\jdk1.7.0_ ...

  10. 一个JAVA程序员成长之路分享

    我搞JAVA也有些日子了, 因为我比较贪玩,上进心不那么强, 总是逼不得已为了高薪跳槽才去学习, 所以也没混成什么大牛, 但好在现在也已经成家立业, 小日子过的还算滋润, 起码顶得住一月近万元的吃喝拉 ...

随机推荐

  1. 汇编程序 - TD调试

    为了写这个Blog,无奈的我深夜打开虚拟机,希望也能帮助一些人,因为好像真的有人不会欸!(→_→) 写在前面的话: 1. TD面板下的调试十分重要.可以观察内存(GOTO DS:XXXX)存放的位置与 ...

  2. jxg项目Day3 -数据库

    可以通过 DOS 命令启动 MySQL 服务,点击"开始"菜单,在搜索框中输入"cmd",以管理员身份运行,按回车键,弹出命令提示符界面.mysql启动:net ...

  3. JSTL常用便签choose和JSTL常用便签foreach

    2. choose :相当于 java 代码的 switch 语句 1.使用 choose 标签声明    相当于switch 2.使用 when 标签做判断   相当于case 3,使用 other ...

  4. SQL SERVER 2014 双机热备操作流程-数据库双向同步 (第一篇:发布)

    需求:需要两个数据库双向同步,即A数据库变动,B及时更新.B数据库变动,A及时更新.思路:利用SQL Server的发布和订阅功能进行同步,在A数据库进行发布<合并发布>,在B数据库进行订 ...

  5. 排序方法-c语言

    在接触过得排序算法中中,较为常见的有冒泡排序.选择排序.归并排序.快速排序法,他们的区别在于稳定性.时间复杂度.空间复杂度等: 现简单复习一下冒泡排序: 思路非常简单,逐个比较相邻的两个元素,前一个元 ...

  6. 转发:基于pnpm + lerna + typescript的最佳实践

    Part1 Pnpm pnpm是一款当代受欢迎 新兴(问题较多) 的包管理工具. 为什么会出现pnpm?因为yarn的出现并没有满足作者的一些期待,反而有些失望. After a few days, ...

  7. AOP的使用及特性

    转载自:https://blog.csdn.net/tianyaleixiaowu/article/details/70853147 https://www.jianshu.com/p/830e799 ...

  8. selenium 使用ddt,运行提示错误信息no such test method

    测试用例test_asg测试数据是通过ddt的方式添加,使用suite.addTest方法添加该用例提示错误信息no such test method in <class 'unitest_lo ...

  9. [极客大挑战 2019]LoveSQL 1

    很明显这时一道SQL注入的题目 这题很简单的SQL注入题目,使用union(联合查询注入),但是缠了我很久 为什么呢?因为我们学校的waf,很多可以注入成功的语句,他都会连接被重置,或者被burpsu ...

  10. SpringBoot笔记--自动配置(高级内容)(下集)

    案例需求 实现步骤: 具体的实现 1.引入Jedis依赖 2.提供Jedis的Bean 找到SpringBoot的执行文件,按住Ctrl键,进入SpringBootApplication注解,再进入E ...