您的位置:首页 > 产品设计 > UI/UE

LeetCode 52. N-Queens II

2016-11-15 18:10 295 查看

描述

对于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);
}
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode