zoukankan      html  css  js  c++  java
  • 52. N皇后 II




    class Solution(object):
        def totalNQueens(self, n):
            """
            :type n: int
            :rtype: int
            """
            res = []
            queen = [-1] * n
            # column = [-1] * n
            # dia1 = [-1] * (2 * n)
            # dia2 = [-1] * (2 * n)
            column = set()
            dia1 = set()
            dia2 = set()
            self.dfs(n, res, queen, column, dia1, dia2, 0)
            return len(res)
    
        def dfs(self, n, res, queen, column, dia1, dia2, row):
            if row == n:
                res.append(1)
                return
            for i in range(n):
                if i in column or row - i in dia1 or row + i in dia2:
                    continue
                queen[row] = i
                # column[i] = i
                # dia1[row - i] = row-i
                # dia2[row + i] = row+i
                column.add(i)
                dia1.add(row-i)
                dia2.add(row+i)
                self.dfs(n, res, queen, column, dia1, dia2, row + 1)
                queen[row] = -1
                # column[i] = -1
                # dia1[row - i] = -1
                # dia2[row + i] = -1
                column.remove(i)
                dia1.remove(row-i)
                dia2.remove(row+i)
    
  • 相关阅读:
    基于MFC的Media Player播放器的制作(1---播放器界面的布局)
    Codeforces 1182
    Codeforces 1169
    Codeforces 1167
    Codeforces 1166
    Codeforces 1148
    *Codeforces 1162
    Codeforces 1159
    点分治
    高斯消元*
  • 原文地址:https://www.cnblogs.com/panweiwei/p/14025443.html
Copyright © 2011-2022 走看看