题解 | #N皇后问题#
N皇后问题
https://www.nowcoder.com/practice/c76408782512486d91eea181107293b6
#include <complex>
#include <vector>
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param n int整型 the n
* @return int整型
*/
bool isValid(vector<int> queen,int row,int col){
for(int i=0;i<row;i++){
if(queen[i]==col||abs(row-i)==abs(col-queen[i])){
return false;
}
}
return true;
}
void recursion(vector<int> &queen,int n,int row,int &cnt){
if(n==row){
cnt++;
return;
}
for(int col=0;col<n;col++){
if(isValid(queen, row , col)){
queen[row]=col;
recursion(queen, n, row+1, cnt);
queen[row]=-1;
}
}
}
int Nqueen(int n) {
// write code here
vector<int> queen(n,-1);
int cnt=0;
recursion(queen, n, 0, cnt);
return cnt;
}
};