原题目连接:N皇后问题_牛客题霸_牛客网
垃圾题解:
class Solution {
public:
/**
*
* @param n int整型 the n
* @return int整型
*/
int n;
int sum;
int book[15][15];
bool check(int r,int c)
{
for(int i=1;i<=n;i++)if(book[i][c])return false;
for(int i=1;i<=n;i++)if(book[r][i])return false;
for(int i=r,j=c;i<=n&&j<=n;i++,j++)if(book[i][j])return false;
for(int i=r,j=c;i<=n&&j>0;i++,j--)if(book[i][j])return false;
for(int i=r,j=c;i>0&&j<=n;i--,j++)if(book[i][j])return false;
for(int i=r,j=c;i>0&&j>0;i--,j--)if(book[i][j])return false;
return true;
}
void dfs(int r)
{
if(r==n+1)
{
sum++;
return;
}
for(int i=1;i<=n;i++)
{
if(check(r,i)&&!book[r][i])
{
book[r][i]=1;
dfs(r+1);
book[r][i]=0;
}
}
return;
}
int Nqueen(int n) {
// write code here
this->n=n;
this->sum=0;
memset(book,0,sizeof(book));
dfs(1);
return sum;
}
};
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)