N-Queens II
Example
class Solution:
"""
Calculate the total number of distinct N-Queen solutions.
@param n: The number of queens.
@return: The total number of distinct solutions.
"""
def __init__(self):
self.sum = 0
def totalNQueens(self, n):
# write your code here
usedColumns = [0] * n
self.dfs(usedColumns, 0)
return self.sum
def dfs(self, usedColumns, row):
n = len(usedColumns)
if n == row:
self.sum += 1
return
for i in range(n):
if self.isValid(usedColumns, row, i):
usedColumns[row] = i
self.dfs(usedColumns, row + 1)
def isValid(self, usedColumns, row, col):
for i in range(row):
if usedColumns[i] == col:
return False
if row - i == abs(col - usedColumns[i]):
return False
return TrueLast updated