关注
//机器人走迷宫
public void doMaze(int x, int y, int[][] obstacles) {
int[][] ints = new int[x][y];
//将障碍位置赋值1
for (int[] obstacle : obstacles) {
ints[obstacle[0]][obstacle[1]] = 1;
}
this.nextMaze(ints, 0, 0);
System.out.println("xx");
}
private boolean nextMaze(int[][] ints, int x, int y) {
//当前格子无法进入(超过下标)
if (x >= ints.length || y >= ints[0].length) {
return false;
}
//当前是障碍物
if(ints[x][y] == 1){
return false;
}
//当前格子到达终点,返回可通行
if (x == ints.length - 1 &;&; y == ints[0].length - 1) {
ints[x][y] = 2;
return true;
}
//往之后的格遍历,其中有一个为可通行,则设置当前格为可通行
boolean b = this.nextMaze(ints, x + 1, y);
b = b | this.nextMaze(ints, x, y + 1);
//当前可进入但是不可到达终点
ints[x][y] = b ? 2 : 3;
return b;
}
结果是将二维数组的障碍物赋值为1 不可达为0 陷阱为3 可达为2 ,简单测试了一下没啥问题应该
查看原帖
点赞 1
相关推荐

点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 我的实习收获 #
29256次浏览 492人参与
# 非技术岗简历怎么写 #
209645次浏览 2859人参与
# 实习吐槽大会 #
30601次浏览 147人参与
# 如果有时光机,你最想去到哪个年纪? #
47000次浏览 799人参与
# 晒一晒你的工位 #
85493次浏览 303人参与
# 26届秋招投递记录 #
3385次浏览 100人参与
# 2025牛客秋招季 #
3437次浏览 105人参与
# 双非能在秋招上岸吗? #
215087次浏览 1142人参与
# 被AI治愈的瞬间 #
52264次浏览 597人参与
# 怎么防止在试用期被辞退 #
122281次浏览 911人参与
# 我的租房踩坑经历 #
26392次浏览 277人参与
# 穿越回高考你还会选现在的专业吗 #
21002次浏览 264人参与
# 打工人的工作餐日常 #
40401次浏览 343人参与
# 软开人,说说你的烦心事 #
48050次浏览 359人参与
# 毕业旅行去哪玩儿 #
1202次浏览 32人参与
# 硬件/芯片公司工作体验 #
75147次浏览 664人参与
# 我和mentor的爱恨情仇 #
43188次浏览 274人参与
# 25届秋招公司红黑榜 #
262122次浏览 1094人参与
# 打工人锐评公司红黑榜 #
145814次浏览 917人参与
# 商战,最累的是我们 #
12987次浏览 52人参与