Follow up for N-Queens problem.
Now, instead outputting board configurations, return the total number of distinct solutions.

class Solution {
public:
int cnt = 0;
int *col;
int totalNQueens(int n) {
col = new int[n];
generate(n,0);
return cnt;
}
void generate(int n,int dep){
if(dep == n){
cnt ++;
return;
}
for(int i = 0;i < n;i ++){
if(check(dep,i)){
generate(n,dep + 1);
col[dep] = -1;
}
}
}
bool check(int k,int i){
col[k] = i;
for(int i = 0;i < k;i ++)
if(col[i] == col[k] || abs(col[i] - col[k]) == abs(i - k)) return false;
return true;
}
};
本文介绍了一种解决N皇后问题的方法,该方法不仅找出所有可能的解决方案配置,还计算了这些配置的总数。通过递归算法和冲突检查机制实现了这一目标。
233

被折叠的 条评论
为什么被折叠?



