LeetCode52. N皇后 II

Posted machine_gun_lin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode52. N皇后 II相关的知识,希望对你有一定的参考价值。

这题和LeetCode第51题做法一样,只不过不是记录具体方案,而是个数。分析见第51题。

代码如下:

class Solution {
int res = 0;
int n;
vector<string> path;
vector<bool> cols, diagram, anti_diagram;
public:
    int totalNQueens(int _n) {
        n = _n;
        path = vector<string>(n, string(n, \'.\'));
        cols = vector<bool>(n);
        diagram = anti_diagram = vector<bool>(2 * n);
        DFS(0);
        return res;
    }
    void DFS(int curRow) {
        if(curRow == n) {
            ++res;
            return ;
        }
        for(int i = 0; i < n; ++i) {
            if(cols[i] == false && diagram[curRow - i + n] == false && anti_diagram[curRow + i] == false) {
                cols[i] = diagram[curRow - i + n] = anti_diagram[curRow + i] = true;
                path[curRow][i] = \'Q\';
                DFS(curRow + 1);
                path[curRow][i] = \'.\';
                cols[i] = diagram[curRow - i + n] = anti_diagram[curRow + i] = false;
            }
        }
    }
};

以上是关于LeetCode52. N皇后 II的主要内容,如果未能解决你的问题,请参考以下文章

leetcode 52 N皇后问题 II

算法leetcode每日一练52. N皇后 II

LeetCode 52. N皇后 II

leetcode 52. N皇后 II

[leetcode] 52. N皇后 II

LeetCode 52.N-Queens II