52-n-queens-ii¶
Try it on leetcode
Description¶
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 the number of distinct solutions to the n-queens puzzle.
Example 1:

Input: n = 4 Output: 2 Explanation: There are two distinct solutions to the 4-queens puzzle as shown.
Example 2:
Input: n = 1 Output: 1
Constraints:
1 <= n <= 9
Solution(Python)¶
class Solution:
def totalNQueens(self, n: int) -> int:
cnt = 0
for sol in self.nqueens(n, 0, [], [], []):
cnt += 1
return cnt
def nqueens(self, n, i, collkup, ldlkup, rdlkup):
if i < n:
for j in range(n):
if j not in collkup and i + j not in ldlkup and i - j not in rdlkup:
yield from self.nqueens(
n, i + 1, collkup + [j], ldlkup +
[i + j], rdlkup + [i - j]
)
else:
yield collkup