题解 | #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

相关推荐

做个有文化的流氓:幸遇良师,幸遇好的hr
找工作中的小确幸
点赞 评论 收藏
分享
评论
21
收藏
分享

创作者周榜

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