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

leetcode 52. N-Queens II

2016-04-07 21:19 375 查看

题意

N皇后问题

题解

使用dfs。

代码

class Solution {
public:
int result;
bool isOK(vector<int> cols, int pos)
{
for(int i = 0; i < pos; i++)
{
if(cols[i] == cols[pos] || abs(cols[i] - cols[pos]) == abs(i - pos))
return false;
}
return true;
}
void dfs(vector<int> cols, int pos, int n)
{
if(pos == n)
{
result++;
}
else
{
for(cols[pos] = 0; cols[pos] < n; cols[pos]++)
{
if(isOK(cols, pos))
dfs(cols, pos + 1, n);
}
}
}
int totalNQueens(int n) {
result = 0;
vector<int> cols(n);
dfs(cols, 0, n);

return result;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: