52. N皇后 II
52. N皇后 II
把解換成解的數量就可以了
class Solution {
public:
class dfs51 {
public:
vector<vector<string>> result;
int num=0;
int N;
dfs51(int n) {
N = n;
}
void dfs(int row,vector<string>& path,vector<bool>& isused,unordered_map<int, int>& coordinate) {
if (row == N - 1) {
result.push_back(path);
num++;
return;
}
//符合要求,看看下面一行的
for (int i = 0; i < N; i++) {
//看看能不能往這裡放
//我想往 row+1 ,i 這一位置放,可以放的條件擺在if裡面了,同樣的也就是剪枝操作
if (isused[i] == false && isXie(row + 1, i, coordinate)) { //這一列沒人用, //排除一下斜對角的
isused[i] = true; //沒人用我用了
path[row + 1][i] = 'Q';
coordinate[row + 1] = i;
dfs(row + 1, path, isused, coordinate); //再去找下一行了啊
path[row + 1][i] = '.'; //用完了還你
isused[i] = false;
}
}
}
bool isXie(int x,int y, unordered_map<int, int>& coordinate) {
for (int i = 0; i < x; i++) {
if (abs(y - coordinate[i] )==abs( x - i))
return false;
}
return true;
}
};
int totalNQueens(int n) {
vector<bool> isused(n, false);
dfs51 d(n);
vector<string> path(n,string(n,'.'));
unordered_map<int, int> coordinate;
d.dfs(-1, path,isused, coordinate);
return d.num;
}
};
相關文章
- LeetCode 52. N皇后 IILeetCode
- Leetcode每日一題:52.N-Queens II(N皇后Ⅱ)LeetCode每日一題
- N皇后和N皇后2
- [Hdfs] lc52. N皇后 II(dfs方案數+經典)
- N 皇后
- 51,N皇后
- Leetcode 通過率最高的困難題 N皇后 II 【回溯解法-剪枝】LeetCode
- N皇后問題
- 7-22 n queens (10分) 八皇后(n皇后)問題
- 20241201: 51. N 皇后
- 藍橋杯-N皇后
- 演算法:N皇后二演算法
- 【一天一大 lee】N皇后 II (難度:困難) - Day20201017
- HDU - 2553 N皇后問題(DFS)
- 2020-11-18 N皇后問題
- N皇后問題(各種優化)優化
- 回溯法(排列樹)解決八(N)皇后問題
- n皇后問題--回溯法,以DFS的方式搜尋
- leetcode演算法題解(Java版)-9-N皇后問題LeetCode演算法Java
- YCOJN皇后
- 每日一題之拉低通過率 回溯演算法 leetcode 51 N皇后每日一題演算法LeetCode
- [LeetCode] 158. Read N Characters Given Read4 II – Call multipleLeetCode
- python八皇后Python
- 程式碼隨想錄演算法訓練營第三十天 | 51.N 皇后演算法
- 棋盤 K皇后
- 八皇后||演算法演算法
- 洛谷八皇后問題
- 八皇后問題python解法Python
- P1219 八皇后(dfs)
- Range Addition II 範圍求和 II
- P10871 皇后 Kraljice 題解
- 洛谷 P1219 八皇后
- Hackable: II
- 八皇后問題分析和實現
- Python 八皇后解法(非遞迴版本)Python遞迴
- (原創) 如何破解Quartus II 7.2 SP1? (IC Design) (Quartus II) (Nios II)iOS
- 劍指 Offer 53 - II. 0~n-1中缺失的數字(二分法)1
- Bracket Sequences IIRacket