Leetcode刷題筆記 51 N 皇后

2021-10-24 06:41:09 字數 1167 閱讀 7348

知識點:回溯

題目

n 皇后問題研究的是如何將 n 個皇后放置在 n×n 的棋盤上,並且使皇后彼此之間不能相互攻擊。

上圖為 8 皇后問題的一種解法。

給定乙個整數 n,返回所有不同的 n 皇后問題的解決方案。

每一種解法包含乙個明確的 n 皇后問題的棋子放置方案,該方案中 『q』 和 『.』 分別代表了皇后和空位。

示例:

輸入

4輸出:

[

[".q.."

,// 解法 1

"...q"

,"q..."

,"..q."],

["..q."

,// 解法 2

"q..."

,"...q"

,".q.."

]]

解釋:

4 皇后問題存在兩個不同的解法。

皇后彼此不能相互攻擊,也就是說:任何兩個皇后都不能處於同一條橫行、縱行或斜線上。

**

#include

#include

#include

#include

using

namespace std;

class

solution

void

dfs(

int row,

int n,vector

& oneans,vector>

&ans)

for(

int col=

0;col

}bool

isvalid

(int row,

int col,vector

& oneans,

int n)};

intmain()

return0;

}

今天也是愛zz的一天哦!

回溯 51 N皇后

思路 皇后彼此不能相互攻擊,也就是說 任何兩個皇后都不能處於同一條橫行 縱行或斜線上,所以固定行進行遞迴,借助輔助資料結構保證列 斜線上不同即可。其中正斜線的座標差相同,反斜線的座標和相等,通過查詢集合裡面是否有值保證其不同。class solution void backtrack vector ...

51 N 皇后(回溯演算法)

n 皇后問題 研究的是如何將 n 個皇后放置在 n n 的棋盤上,並且使皇后彼此之間不能相互攻擊。給你乙個整數 n 返回所有不同的 n 皇后問題 的解決方案。每一種解法包含乙個不同的 n 皇后問題 的棋子放置方案,該方案中 q 和 分別代表了皇后和空位。我們先來簡化一下題目 棋盤中皇后可以攻擊同一行...

Leetcode刷題筆記 N 皇后II

知識點 回溯 題目 n 皇后問題研究的是如何將 n 個皇后放置在 n n 的棋盤上,並且使皇后彼此之間不能相互攻擊。上圖為 8 皇后問題的一種解法。給定乙個整數 n,返回所有不同的 n 皇后問題的解決方案。每一種解法包含乙個明確的 n 皇后問題的棋子放置方案,該方案中 q 和 分別代表了皇后和空位。...