leetcode演算法練習 52 N皇后 II

2021-10-06 19:26:07 字數 841 閱讀 2827

所有題目源**:git位址

題目

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

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

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

示例:輸入:

4輸出:

2解釋:

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

".q.."

,// 解法 1

"...q"

,"q..."

,"..q."],

["..q."

,// 解法 2

"q..."

,"...q"

,".q.."

]]

方案:回溯
class

solution

public

void

recall

(int row)

//row = 行號

loop1:

for(

int i =

0;i<

this

.n;i++

)this

.coord[row]

= i;

//如果匹配成功,進入下一行

recall

(row+1)

;this

.coord[row]=0

;}return;}

}

複雜度計算

Leetcode 每日一題 52 N皇后 II

n 皇后問題研究的是如何將 n 個皇后放置在 n n 的棋盤上,並且使皇后彼此之間不能相互攻擊。上圖為 8 皇后問題的一種解法。給定乙個整數 n,返回 n 皇后不同的解決方案的數量。示例 輸入 4 輸出 2 解釋 4 皇后問題存在如下兩個不同的解法。q 解法 1 q q q.q.解法 2 q q q...

力扣每日一題 52 N皇后II

八皇后問題是個經典的問題,n皇后問題算是八皇后問題的擴充套件,都可以通過回溯方法求解。資料的儲存方式 對於乙個nxn的棋盤,最基本的實現方式是使用乙個nxn的矩陣m,若矩陣m i j 值為1,則表示在點 i,j 處放置乙個皇后。但是這個實現方式比較耗記憶體。我們知道,一行內最多只能有乙個皇后,所以可...

leetcode 52 N皇后II(回溯)

n 皇后問題研究的是如何將 n 個皇后放置在 n n 的棋盤上,並且使皇后彼此之間不能相互攻擊。上圖為 8 皇后問題的一種解法。給定乙個整數 n,返回 n 皇后不同的解決方案的數量。示例 輸入 4 輸出 2 解釋 4 皇后問題存在如下兩個不同的解法。q.解法 1 q q.q.q.解法 2 q.q q...