LeetCode 52. N-Queens II

来源:互联网 发布:mac photoshop 编辑:程序博客网 时间:2024/05/16 15:45

描述

对于n皇后,答案是多少种

解决

利用二进制来标记


class Solution {public:    int sum{0};    int most_num;    int totalNQueens(int n) {        most_num = (1 << n) - 1;        rec(0, 0, 0);        return sum;    }    void rec(int up_r, int l, int r)    {        if (up_r == most_num)        {            ++sum;            return ;        }        int tmp = most_num & (~(up_r | l | r));        while (tmp)        {            int t = tmp & (-tmp);            tmp -= t;            rec(up_r + t, (l + t) << 1, (r + t) >> 1);        }    }};
0 0
原创粉丝点击