#经典回溯,极简python解答 class Solution: def Nqueen(self , n ): #col: 存储已有的列信息,如[1,4]含义为第1行第1列和第2行第4列已经存放了 #ld: 存储已有的左下对角线信息,特点是行(i) - 列(j)为固定值 #ru: 存储已有的右上对角线信息,特点是行(i) + 列(j)为固定值 def backtrack(col, ld, ru): if len(col) == n: self.res += 1 return i = len(col) for j in range(n): if j not in col and i + j not in ru and i - j not in ld: backtrack(col+[j], ld + [i - j], ru + [i + j]) self.res = 0 backtrack([], [], []) return self.res