每日一題之拉低通過率 回溯演算法 leetcode 51 N皇后
思路
建立決策樹,每個節點的屬性:
- 路徑
- 選擇列表
遍歷決策樹的每一個節點即可。每個節點的選擇:在該行的任意一列放置一個皇后。
class Solution {
private:
vector<vector<string>> allPath;
public:
void backTrack(vector<string>& path, int row) {
if (path.size() == row) {
allPath.push_back(path);
return ;
}
for (int i = 0; i < path.size(); i ++) {
if (!isVaild(row, i, path)) continue;
path[row][i] = 'Q';
backTrack(path, row + 1);
path[row][i] = '.';
}
}
bool isVaild(int row, int col, vector<string>& path) {
for (int i = row - 1; i >= 0; i --) { //觀察同一列
if (path[i][col] == 'Q') return false;
}
for (int i = row - 1, j = col - 1; i >= 0 && j >= 0; i --, j --) { //觀察左上
if (path[i][j] == 'Q') return false;
}
for (int i = row - 1, j = col + 1; i >= 0 && j < path.size(); i --, j ++) { //觀察右上
if (path[i][j] == 'Q') return false;
}
return true;
}
vector<vector<string>> solveNQueens(int n) {
vector<string> path(n, string(n, '.'));
backTrack(path, 0);
return allPath;
}
};
相關文章
- Leetcode 通過率最高的困難題 N皇后 II 【回溯解法-剪枝】LeetCode
- Leetcode每日一題:52.N-Queens II(N皇后Ⅱ)LeetCode每日一題
- 51,N皇后
- 20241201: 51. N 皇后
- leetcode演算法題解(Java版)-9-N皇后問題LeetCode演算法Java
- 回溯法(排列樹)解決八(N)皇后問題
- n皇后問題--回溯法,以DFS的方式搜尋
- 從八皇后問題到回溯演算法演算法
- LeetCode 52. N皇后 IILeetCode
- N皇后問題
- 演算法:N皇后二演算法
- N皇后和N皇后2
- 7-22 n queens (10分) 八皇后(n皇后)問題
- LeetCode通關:連刷十四題,回溯演算法完全攻略LeetCode演算法
- LeetCode每日一題:重複 N 次的元素(No.961)LeetCode每日一題
- LeetCode每日一題: N叉樹的最大深度(No.559)LeetCode每日一題
- N 皇后
- 資料結構和演算法——遞迴-八皇后問題(回溯演算法)資料結構演算法遞迴
- leetcode每日一題LeetCode每日一題
- HDU - 2553 N皇后問題(DFS)
- 程式碼隨想錄演算法訓練營第三十天 | 51.N 皇后演算法
- Leetcode每日一題(1)LeetCode每日一題
- 2020-11-18 N皇后問題
- N皇后問題(各種優化)優化
- 經過努力+作弊,我終於完成了leetcode通過率最低的一道題LeetCode
- leetcode.回溯演算法能解決什麼問題?LeetCode演算法
- 《演算法》系列—大白話聊分治、回溯,手撕八皇后演算法
- 【LeetCode回溯演算法#08】遞增子序列,鞏固回溯演算法中的去重問題LeetCode演算法
- 回溯演算法 | 追憶那些年曾難倒我們的八皇后問題演算法
- C#資料結構與演算法系列(十四):遞迴——八皇后問題(回溯演算法)C#資料結構演算法遞迴
- LeetCode 2024/6 每日一題 合集LeetCode每日一題
- LeetCode演算法訓練-回溯總結LeetCode演算法
- 藍橋杯-N皇后
- 52. N皇后 II
- 【LeetCode回溯演算法#07】子集問題I+II,鞏固解題模板並詳解回溯演算法中的去重問題LeetCode演算法
- LeetCode 每日一題「判定字元是否唯一」LeetCode每日一題字元
- LeetCode每日一題: 找不同(No.389)LeetCode每日一題
- LeetCode每日一題: 移除元素(No.27)LeetCode每日一題