From 34fecf72cdae5c090caa53fd06a625c61d960dc7 Mon Sep 17 00:00:00 2001 From: AryanShriv Date: Thu, 2 Oct 2025 15:29:02 +0530 Subject: [PATCH 1/2] N-Queen Problem --- Java/Backtracking/N-QueenProblem.java | 44 +++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 Java/Backtracking/N-QueenProblem.java diff --git a/Java/Backtracking/N-QueenProblem.java b/Java/Backtracking/N-QueenProblem.java new file mode 100644 index 0000000..cc7268c --- /dev/null +++ b/Java/Backtracking/N-QueenProblem.java @@ -0,0 +1,44 @@ +import java.util.*; + +class Queen { + private boolean canPlace(char[][] board, int row, int col, int n) { + // upper-left diagonal + for (int r = row, c = col; r >= 0 && c >= 0; r--, c--) + if (board[r][c] == 'Q') return false; + + // same row (left) + for (int c = col; c >= 0; c--) + if (board[row][c] == 'Q') return false; + + // bottom-left diagonal + for (int r = row, c = col; r < n && c >= 0; r++, c--) + if (board[r][c] == 'Q') return false; + + return true; + } + + private void placements(int col, char[][] board, List> ans, int n) { + if (col == n) { + List temp = new ArrayList<>(); + for (int i = 0; i < n; i++) temp.add(new String(board[i])); + ans.add(temp); + return; + } + + for (int row = 0; row < n; row++) { + if (canPlace(board, row, col, n)) { + board[row][col] = 'Q'; + placements(col + 1, board, ans, n); + board[row][col] = '.'; + } + } + } + + public List> solveNQueens(int n) { + List> ans = new ArrayList<>(); + char[][] board = new char[n][n]; + for (int i = 0; i < n; i++) Arrays.fill(board[i], '.'); + placements(0, board, ans, n); + return ans; + } +} \ No newline at end of file From 027139aa785f230ebf7bf10a0996ff6d04366d89 Mon Sep 17 00:00:00 2001 From: AryanShriv Date: Thu, 2 Oct 2025 15:32:39 +0530 Subject: [PATCH 2/2] N-Queen Problem --- Java/Backtracking/N-QueenProblem.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Java/Backtracking/N-QueenProblem.java b/Java/Backtracking/N-QueenProblem.java index cc7268c..4fa110d 100644 --- a/Java/Backtracking/N-QueenProblem.java +++ b/Java/Backtracking/N-QueenProblem.java @@ -1,5 +1,7 @@ import java.util.*; +// N-Queen Problem + class Queen { private boolean canPlace(char[][] board, int row, int col, int n) { // upper-left diagonal