class Solution {
public:
vector<vector<string>> result;
vector<string> path;
vector<int> temp;
int size;
vector<vector<string>> solveNQueens(int n) {
size=n;
traverse(0);
return result;
}
bool is_valid(int N, int pos){
if(temp.size()==0) return true;
for(int i=0;i<temp.size();i++){
if(pos==temp[i]) return false;
if((N-i)==abs(pos-temp[i])) return false;
}
return true;
}
void traverse(int N){
if(N==size){
result.push_back(path);
return;
}
for(int i=0;i<size;i++){
if(is_valid(N,i)==false) continue;
string s(size,'.');
s[i] = 'Q';
temp.push_back(i);
path.push_back(s);
traverse(N+1);
path.pop_back();
temp.pop_back();
}
}
};
刷题记录第九十七天-N皇后
最新推荐文章于 2024-06-14 09:50:01 发布