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)
看了很多人讲述的题解,都觉得不够清楚。然后自己写了一下,应该很清楚吧如果是返回解的个数,那就直接用一个全局变量在遍历退出的地方记录一下就好了或者返回len(ans),哈哈哈class Solution(object): """ @param: n: The number of queens @return: All distinct solutions ...