The n-queens puzzle is the problem of placing n queens on an n x n chessboard such that no two queens attack each other.
Given an integer n, return all distinct solutions to the n-queens puzzle. You may return the answer in any order.
Each solution contains a distinct board configuration of the n-queens' placement, where 'Q' and '.' both indicate a queen and an empty space, respectively.
Input: n = 4
Output: [[".Q..","...Q","Q...","..Q."],["..Q.","Q...","...Q",".Q.."]]
Explanation: There exist two distinct solutions to the 4-queens puzzle as shown above
Input: n = 1
Output: [["Q"]]
1 <= n <= 9The N-Queens problem is a classic problem that can be solved using a backtracking approach. The main idea is to place queens one by one in different rows, starting from the first row. When placing a queen in a particular row, we must ensure that it does not attack any other previously placed queens. For this, we can use three sets to track the columns and two diagonals (positive and negative diagonals).
For an even more optimized approach, we can use bitmasking to manage the columns and diagonals. This reduces the overhead of using sets and improves lookup times to constant.