package com.java.study;
class MazeClass{
private int []H = {0 ,1 ,0, -1};
private int []V = {-1 ,0 ,1, 0};//上,右,下,左
private char[][]Maze;
private int len;
public MazeClass(char[][]Maze, int len){
this.Maze = Maze;
this.len = len;
}
public void FindPath(int x, int y){
if(x==len || y==len){
for(int i = 0 ; i < len ;i++){
for(int j = 0 ; j < len; j++){
char fenge = j < len-1 ? ' ':'\n';
System.out.print(Maze[i][j]);
System.out.print(fenge);
}
}
}else for(int k = 0 ; k < 4; k++){
if(x>=0 && y>=0 && y<len && x<len && 'o'==Maze[x][y]){
Maze[x][y] = ' ';
FindPath(x+V[k] , y+H[k]);//按四个方向去搜
Maze[x][y] = 'o';
}
}
}
}
public class Maze {
public static void main(String[] args) {
char Maze[][] =
{{'X','X','X','X','X','X','X','X'},
{'o','o','o','o','o','X','X','X'},
{'X','o','X','X','o','o','o','X'},
{'X','o','X','X','o','X','X','o'},
{'X','o','X','X','X','X','X','X'},
{'X','o','X','X','o','o','o','X'},
{'X','o','o','o','o','X','o','o'},
{'X','X','X','X','X','X','X','X'}};
MazeClass mc = new MazeClass(Maze,Maze.length);
mc.FindPath(1, 0);
}
}迷宫的第二种写法——递归实现
原创
©著作权归作者所有:来自51CTO博客作者dongdong200514的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:最长公共子串——动态规划
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
在Java中使用二维数组生成迷宫
在Java中使用二维数组生成迷宫
深度优先搜索 Java 二维数组 -
某东登录第二种方式
第二种:selenium
python -
Redis 第二种安装部署方法
Redis 第二种安装部署方法
Redis 第二种安装部署方法 -
数据结构208-冒泡排序算法第二种写法
前端
数据结构 排序算法 算法

















