题解 | #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; } };