蓝桥杯走迷宫Java
时间: 2023-12-12 19:04:00 浏览: 113
以下是使用Java语言解决蓝桥杯走迷宫问题的代码:
```java
import java.util.Scanner;
public class Main {
static int n, m, p;
static char[][] map;
static boolean[][] vis;
static int[][] dir = {{-1, 0}, {0, 1}, {1, 0}, {0, -1}}; // 上右下左四个方向
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
n = 10; // 迷宫的行数
m = 10; // 迷宫的列数
p = 16; // 迷宫的字符串长度
map = new char[n][m];
vis = new boolean[n][m];
for (int i = 0; i < n; i++) {
String s = sc.next();
for (int j = 0; j < m; j++) {
map[i][j] = s.charAt(j);
}
}
if (dfs(0,0)) {
System.out.println("YES");
} else {
System.out.println("NO");
}
}
public static boolean dfs(int x, int y) {
if (x == n - 1 && y == m - 1) { // 到达终点
return true;
}
vis[x][y] = true; // 标记已经走过
for (int i = 0; i < 4; i++) { // 枚举四个方向
int nx = x + dir[i][0];
int ny = y + dir[i][1];
if (nx >= 0 && nx < n && ny >= 0 && ny < m && !vis[nx][ny] && map[nx][ny] == map[x][y]) { // 判断是否越界、是否走过、是否可以走
if (dfs(nx, ny)) { // 搜索下一个位置
return true;
}
}
}
return false;
}
}
```
阅读全文