LeetCode 52 [N-Queens II]

作者: Jason_Yuan | 来源:发表于2016-07-12 16:31 被阅读59次

原题

根据n皇后问题,现在返回n皇后不同的解决方案的数量而不是具体的放置布局。

样例
比如n=4,存在2种解决方案

解题思路

  • 比N-Queens还要简单一些,因为不需要画出board,只需要维护一个全局变量result
  • 完整思路见 N-Queens

完整代码

class Solution(object):
    result = 0
    def totalNQueens(self, n):
        """
        :type n: int
        :rtype: int
        """
        cols = []
        self.search(n, cols)
        return self.result
        
    def search(self, n, cols):
        if len(cols) == n:
            self.result += 1
            return
        
        for col in range(n):
            if not self.isValid(cols, col):
                continue
            self.search(n, cols + [col])

    def isValid(self, cols, col):
        currentRowNumber = len(cols)
        for i in range(currentRowNumber):
            # same column
            if cols[i] == col:
                return False
            # left-top to right-bottom
            if i - cols[i] == currentRowNumber - col:
                return False
            # right-top to left-bottom
            if i + cols[i] == currentRowNumber + col:
                return False
        return True

相关文章

  • Leetcode-52N-Queens II

    52. N-Queens II(待改进) The n-queens puzzle is the problem o...

  • [DFS]52. N-Queens II

    分类:DFS 时间复杂度: O(n^2) 52. N-Queens II The n-queens puzzle ...

  • LeetCode 52 [N-Queens II]

    原题 根据n皇后问题,现在返回n皇后不同的解决方案的数量而不是具体的放置布局。 样例比如n=4,存在2种解决方案 ...

  • Leetcode 52. N-Queens II

    题目 Follow up for N-Queens problem. Now, instead outputtin...

  • Leetcode 52. N-Queens II

    回溯法,非递归求 N 皇后问题解个数,Python 3 实现: 源代码已上传 Github,持续更新。 源代码已上...

  • N-Queens I & II (Leetcode 51, 52

    著名的“N皇后”问题。主要思路是:我们逐行进行DFS,而在每一行的DFS中逐列扫描,放置皇后。 N Queens ...

  • LeetCode 52. N皇后 II(N-Queens II)

    52. N皇后 II N皇后 IIn 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之...

  • 【LeetCode 51/52】 N-Queens I/II(h

    LeetCode 51 放一个queen以后,其所在row,column,正对角线,反对角线都需要被标记成占用 对...

  • Leetcode - N-Queens II

    My code: 就把 I 改了下,就交了。思路差不多。核心就是,那两条对称斜线,是可以各用一个数字来表示的。 A...

  • LeetCode #51 #52 2018-09-04

    51. N-Queens https://leetcode.com/problems/n-queens/descr...

网友评论

    本文标题:LeetCode 52 [N-Queens II]

    本文链接:https://www.haomeiwen.com/subject/offsjttx.html