蓝桥杯第八届真题 :迷宫

点击查看:蓝桥杯历年真题 题解目录
迷宫

在这里插入图片描述
在这里插入图片描述

评测标准答案:31
1.在生成字符数组时,可以直接使用字符串,也可以用 ctr+F 将"U"替换成"  'U',   ",
   其余三个字符同理,再加上大括号即可。
2. 10x10的数组中的每一个字符都代表一个 人,用嵌套for循环遍历check()每一个字符.
3. 利用一个辅助的数组,做过的位置变为1,如果再次来的1得位置,则说明有循环走不出去
4. 四个方向  每变换一次,i和j变化一次,当i<0,j<0,i>9,j>9时,走迷宫
5. check()每个字符时,都要把辅助数组清零。
import java.util.Scanner;
public class Main001_迷宫{
    static int[][] t = new int[10][10];
    public static void main(String[] args) {
        char dir[][] = new char[][] {
	   {'U','D','D','L','U','U','L','R','U','L'},
	   {'U','U','R','L','L','L','R','R','R','U'},
	   {'R','R','U','U','R','L','D','L','R','D'},
	   {'R','U','D','D','D','D','U','U','U','U'},
	   {'U','R','U','D','L','L','R','R','U','U'},
	   {'D','U','R','L','R','L','D','L','R','L'},
	   {'U','L','L','U','R','L','L','R','D','U'},
	   {'R','D','L','U','L','L','R','D','D','D'},
	   {'U','U','D','D','U','D','U','D','L','L'},
	   {'U','L','R','D','L','U','U','R','R','R'},
	};
	int count = 0;
  	for(int i=0;i<10;i++) {
   	    for(int j=0;j<10;j++){
    		SetZero(t);
    		if(check(i,j,dir))  count++;
   	    }
  	}
  	System.out.println(count);
    }
    private static void SetZero(int[][] t2) {
  	for(int i=0;i<10;i++) 
   	    for(int j=0;j<10;j++)
    		t[i][j]=0;
    }
    private static boolean check(int i,int j,char[][]dir) {
  	if(i<0||i>9||j<0||j>9)  return true;
  	else if(t[i][j]==1)    return false;
  	else {
   	    t[i][j] = 1;
   	    switch(dir[i][j]){
       		case 'U':
        	    return check(i-1, j, dir);
       		case 'D' :
         	    return check(i+1, j, dir);
       		case 'L' :
            	    return check(i, j-1, dir);
       		case 'R' :
       		    return check(i, j+1, dir);
       		default :
        	    return false;
   	    }
 	}
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值