-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy path52. N-Queens II.cpp
More file actions
36 lines (34 loc) · 897 Bytes
/
Copy path52. N-Queens II.cpp
File metadata and controls
36 lines (34 loc) · 897 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
class Solution {
public:
vector<int> saveCol;// 存储每一行中的列数字
int count=0;
int totalNQueens(int n) {
solveHelper(n,0);
return count;
}
void solveHelper(int n,int row){
if(row==n){
count++;
return;
}
for(int col=0;col<n;col++){
if(isValid(row,col)){
saveCol.push_back(col);
solveHelper(n,row+1);
saveCol.pop_back();
}
}
}
bool isValid(int row,int col){
if(row<saveCol.size())
return false;
for(int i=0;i<saveCol.size();i++){
if(saveCol[i]==col||abs(saveCol[i]-col)==abs(row-i))
return false;
}
return true;
}
};
//这个算是比较难得回溯啦,加油啊
// 还是不会啊
// 前面一题不会,这题也不会啊