52. N-Queens II Leetcode Python

来源:互联网 发布:记工时的软件 编辑:程序博客网 时间:2024/06/05 23:08

Follow up for N-Queens problem.

Now, instead outputting board configurations, return the total number of distinct solutions.

this problem is slightly different from prior one. Here we just need to update with counting number.

we can define a self.count in the __init__ so that we can update it every time when the depth==n.

the time complexity is still exponential

and the space complexity is O(n)

Here is the code.

class Solution:    # @return an integer    def __init__(self):        self.count=0    def totalNQueens(self, n):        def check(k,j):            for i in range(k):                if board[i]==j or abs(k-i)==abs(board[i]-j):                    return False            return True        def dfs(depth):            if depth==n:                self.count+=1                return            for i in range(n):                if check(depth,i):                    board[depth]=i                    s='.'*n                    dfs(depth+1)        board=[-1 for i in range(n)]        dfs(0)        return self.count





0 0
原创粉丝点击