Rat in maze shortest path
Given a 2 dimensional array with number 1s and 0s, 1 means wall, 0 means road,
find the shortest path from 0 row 0 column to m row n column, if not possible return -1.
public static void main(String[] args) {
//0 means road, 1 means wall
int[][] intArr = { {0,0,0,1,0},
{1,1,0,1,0},
{1,1,0,0,0},
{1,1,0,1,0},
{0,1,0,0,0}};
DFS(intArr, 0, 2, 0);//
System.out.println(lowest);
}
private static int lowest = -1;
public static void DFS(int[][] board, int i , int j ,int cur){
if(i < 0 || i >= board.length || j < 0 || j >= board[0].length || board[i][j] == -1){
return;
}
if(board[i][j] == 1){
return;
}
if(i == 0 && j == 0){
if(lowest == -1){
lowest = cur;
}
if(cur < lowest){
lowest = cur;
}
}
int temp = board[i][j];
board[i][j] = -1;
DFS(board, i+1 , j, cur+1);
DFS(board, i-1 , j, cur+1);
DFS(board, i , j-1, cur+1);
DFS(board, i , j+1, cur+1);
board[i][j] = temp;
}