网站源文件修改,百度站长提交网址,网站生成静态页面,个人主页排版文章目录 什么是递归回溯 什么是递归 回溯 //使用递归回溯来给小球找路//说明//1. map 表示地图//2. i,j 表示从地图的哪个位置开始出发 (1,1)//3. 如果小球能到 map[6][5] 位置#xff0c;则说明通路找到.//4. 约定#xff1a; 当map[i][j] 为 0 表示该点没有走过 当为 1 表… 文章目录 什么是递归回溯 什么是递归 回溯 //使用递归回溯来给小球找路//说明//1. map 表示地图//2. i,j 表示从地图的哪个位置开始出发 (1,1)//3. 如果小球能到 map[6][5] 位置则说明通路找到.//4. 约定 当map[i][j] 为 0 表示该点没有走过 当为 1 表示墙 2 表示通路可以走 3 表示该点已经走过但是走不通//5. 在走迷宫时需要确定一个策略如下-右-上-左 , 如果该点走不通再回溯/*** * param map 表示地图* param i 从哪个位置开始找* param j * return 如果找到通路就返回true, 否则返回false*/public static boolean setWay(int[][] map, int i, int j) {if(map[6][5] 2) { // 通路已经找到okreturn true;} else {if(map[i][j] 0) { //如果当前这个点还没有走过//按照策略 下-右-上-左 走map[i][j] 2; // 假定该点是可以走通.if(setWay(map, i1, j)) {//向下走return true;} else if (setWay(map, i, j1)) { //向右走return true;} else if (setWay(map, i-1, j)) { //向上return true;} else if (setWay(map, i, j-1)){ // 向左走return true;} else {//说明该点是走不通是死路map[i][j] 3;return false;}} else { // 如果map[i][j] ! 0 , 可能是 1 2 3return false;}}}