Leetcode—52.N皇后II【困难】

2023每日刷题(八十五)

Leetcode—52.N皇后II

Leetcode—52.N皇后II【困难】_第1张图片

实现代码

class Solution {
public:
    int totalNQueens(int n) {
        int ans = 0;
        vector<int> col(n), on_path(n), diag1(2 * n), diag2(2 * n);
        function<void(int)> dfs = [&](int r) {
            if(r == n) {
                ans++;
                return;
            }
            for(int c = 0; c < n; c++) {
                int rc = r - c + n - 1;
                if(!on_path[c] && !diag1[r + c] && !diag2[rc]) {
                    col[r] = c;
                    on_path[c] = diag1[r + c] = diag2[rc] = 1;
                    dfs(r + 1);
                    on_path[c] = diag1[r + c] = diag2[rc] = 0;
                }
            }
        };
        dfs(0);
        return ans;
    }
};

运行结果

Leetcode—52.N皇后II【困难】_第2张图片
之后我会持续更新,如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持!

你可能感兴趣的:(LeetCode刷题,leetcode,算法,职场和发展,经验分享,c++,dfs,回溯)