知識點:回溯
題目
n 皇后問題研究的是如何將 n 個皇后放置在 n×n 的棋盤上,並且使皇后彼此之間不能相互攻擊。
上圖為 8 皇后問題的一種解法。
給定乙個整數 n,返回所有不同的 n 皇后問題的解決方案。
每一種解法包含乙個明確的 n 皇后問題的棋子放置方案,該方案中 『q』 和 『.』 分別代表了皇后和空位。
示例:
輸入:
4輸出:
2解釋
[
[".q.."
,// 解法 1
"...q"
,"q..."
,"..q."],
["..q."
,// 解法 2
"q..."
,"...q"
,".q.."
]]
4 皇后問題存在兩個不同的解法。
皇后彼此不能相互攻擊,也就是說:任何兩個皇后都不能處於同一條橫行、縱行或斜線上。
解法:
與n皇后類似
不用求出具體解法
**:
#include
#include
#include
using
namespace std;
class
solution
void
dfs(
int row,
int n,
int&ans,vector
int>>
&vis)
if(row==n)
for(
int col=
0;col
}bool
isvalid
(int row,
int col,vector
int>>
&vis,
int n)
for(
int i=row-
1,j=col-
1;i>=
0&&j>=
0;i--
,j--)if
(vis[i]
[j])
return
false
;for
(int i=row-
1,j=col+
1;i>=
0&&j
,j++)if
(vis[i]
[j])
return
false
;return
true;}
};intmain()
今天也是愛zz的一天哦!
Leetcode刷題筆記 51 N 皇后
知識點 回溯 題目 n 皇后問題研究的是如何將 n 個皇后放置在 n n 的棋盤上,並且使皇后彼此之間不能相互攻擊。上圖為 8 皇后問題的一種解法。給定乙個整數 n,返回所有不同的 n 皇后問題的解決方案。每一種解法包含乙個明確的 n 皇后問題的棋子放置方案,該方案中 q 和 分別代表了皇后和空位。...
每日刷題 N皇后
n 皇后問題研究的是如何將 n 個皇后放置在 n n 的棋盤上,並且使皇后彼此之間不能相互攻擊。皇后的攻擊範圍為 自己所在的一行 自己所在的一列 以及自己所在的兩個對角線上。上圖為 8 皇后問題的一種解法。給定乙個整數 n,返回所有不同的 n 皇后問題的解決方案。每一種解法包含乙個明確的 n 皇后問...
領扣刷題 N皇后問題
題目描述如下 n 皇后問題研究的是如何將 n 個皇后放置在 n n 的棋盤上,並且使皇后彼此之間不能相互攻擊。上圖為 8 皇后問題的一種解法。給定乙個整數 n,返回所有不同的 n 皇后問題的解決方案。每一種解法包含乙個明確的 n 皇后問題的棋子放置方案,該方案中 q 和 分別代表了皇后和空位。示例 ...