class Solution:
def solveNQueens(self, n):
"""
:type n: int
:rtype: List[List[str]]
"""
nums=[-1 for _ in range(n)]
res=[]
self.dfs(nums, 0, res)
result=[]
for tmp in res:
result.append([])
for ele in tmp:
result[-1].append('.'*ele+'Q'+'.'*(n-ele-1))
return result
def dfs(self, nums, index, res):
if index == len(nums):
res.append(nums.copy())
return
for i in range(len(nums)):
nums[index] = i
if self.valid(nums, index, i):
self.dfs(nums, index + 1, res)
def valid(self, nums, i, k):
for j in range(i):
if nums[j] == k or abs(k - nums[j]) == i - j:
return False
return True