class Solution(object):
"""
@param: n: The number of queens
@return: All distinct solutions
"""
def solveNQueens(self, n):
# write your code here
ans = []
def dfs(nums ,row):
#从上到下一行一行放皇后
#nums[row] = col,表示第row行的皇后放在第col列
if row == n:
#如果放到最后一行,表示放完了
ans.append(nums[:])
return
for col in range(n):
#对于此时的第row行,我们从左往右先尝试着放皇后,nums[row] = col
nums[row] = col
if vaild(nums,row):
#如果此时放在row行的第col列,这个位置时是合法的,
#ok继续向下一行row+1行放皇后
dfs(nums,row + 1)
def vaild(nums,row):
#对于nums[0:row-1],已经是合理的放置位置。
#那么此时放在row行的第nums[row]位置,是否是合法的
for i in