Leetcode刷題筆記 N 皇后II

2021-10-24 21:15:41 字數 1549 閱讀 2294

知識點:回溯

題目

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 和 分別代表了皇后和空位。示例 ...