题解 | #N皇后问题#

N皇后问题

http://www.nowcoder.com/practice/c76408782512486d91eea181107293b6

#经典回溯,极简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
全部评论
没看懂。
点赞 回复 分享
发布于 2022-08-12 17:19

相关推荐

完美的潜伏者许愿简历...:隐藏信息被你提取出来了,暗示,这就是暗示
点赞 评论 收藏
分享
强大的马里奥:不太可能,我校计算机硕士就业率99%
点赞 评论 收藏
分享
评论
20
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务