LeetCode 52 [N-Queens II]

原題

根據(jù)n皇后問題,現(xiàn)在返回n皇后不同的解決方案的數(shù)量而不是具體的放置布局。

樣例
比如n=4,存在2種解決方案

解題思路

  • 比N-Queens還要簡(jiǎn)單一些,因?yàn)椴恍枰嫵鯾oard,只需要維護(hù)一個(gè)全局變量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
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 題目 Follow up for N-Queens problem. Now, instead outputtin...
    persistent100閱讀 136評(píng)論 0 0
  • 回溯法,非遞歸求 N 皇后問題解個(gè)數(shù),Python 3 實(shí)現(xiàn): 源代碼已上傳 Github,持續(xù)更新。 源代碼已上...
    Zentopia閱讀 240評(píng)論 0 0
  • 背景 一年多以前我在知乎上答了有關(guān)LeetCode的問題, 分享了一些自己做題目的經(jīng)驗(yàn)。 張土汪:刷leetcod...
    土汪閱讀 12,899評(píng)論 0 33
  • 原題 n皇后問題是將n個(gè)皇后放置在n*n的棋盤上,皇后彼此之間不能相互攻擊。給定一個(gè)整數(shù)n,返回所有不同的n皇后問...
    Jason_Yuan閱讀 2,158評(píng)論 0 0
  • 一個(gè)人,是許多寂寞青年男女特別愛提及的一個(gè)詞匯。 我不禁想問,當(dāng)你真的感覺一個(gè)人了,是種怎么樣的體驗(yàn)。一個(gè)人,是一...
    Tenderness冬夏莫涼閱讀 272評(píng)論 0 2

友情鏈接更多精彩內(nèi)容