N-Queen Arrangement Problem [Backtracking]

 Programming Language - Java

public static boolean saveTheQueen(int[][] board, int col) {
if(col>= board.length) return true;
for (int row=0; row< board.length; row++) {
/* Constrains */
if(diagonals(board, row, col)) {
board[row][col] = 1;
/* Recursion */
if(saveTheQueen(board,col+1)) return true;
/* Backtracking */
board[row][col] = 0;
}
}
return false;
}

static boolean diagonals(int[][] board, int row, int col) {
for (int i=0; i<col; i++)
if(board[row][i] == 1) return false;
for (int x=row, y=col;x>=0 && y>=0; x--, y--)
if (board[x][y] == 1) return false;
for (int x=row, y=col; y>=0 && x<board.length; x++, y--)
if(board[x][y] == 1) return false;
return true;
}

Comments

Popular posts from this blog

Rat In A Maze Problem - Solution in Java [Recursion and Backtracking]

Clone Graph Problem : Recursive Approach - Java