标签:
研究了一夜,各种bug。
看到了大神的代码,简洁明了。
学习了。
class Solution { public: void printQueen(vector<int> &A,int n,vector<vector<string>> &result){ vector<string> r; for(int i=0;i<n;i++){ string str(n,‘.‘); str[A[i]] = ‘Q‘; r.push_back(str); } result.push_back(r); } bool isValidQueens(vector<int>A,int r){ for(int i=0;i<r;i++){ if((A[i]==A[r])||(abs(A[i]-A[r]))==(r-i)) return false; } return true; } void nqueens(vector<int> A,int cur, int n,vector<vector<string>> &result){ if(cur == n){ printQueen(A,n,result); }else{ for(int i=0;i<n;i++){ A[cur] = i; if(isValidQueens(A,cur)) nqueens(A,cur+1,n,result); } } } vector<vector<string> > solveNQueens(int n) { vector<vector<string>> result; result.clear(); vector<int> A(n,-1); nqueens(A,0,n,result); return result; } };
标签:
原文地址:http://www.cnblogs.com/footy/p/4560033.html