亞子哥刷題之路 N皇后問題

2021-10-08 04:40:12 字數 839 閱讀 6519

n皇后問題是指在n*n的棋盤上要擺n個皇后,要求任何兩個皇后不同行、不同列,也不在同一條斜線上。給定乙個整數n,返回n皇后的擺法有多少種?

舉例:

n=

1,返回1

n=2或3

,無論怎麼擺都不行,返回0.

n=8,返回92

1、如果在(i,j)位置(第i行第j列)放置乙個皇后,接下來哪些位置不能放置皇后呢?

2、思路

public

intf

(int n)

int[

] record=

newint

[n];

returnf1(

0, record, n);}

/** * n皇后遞迴函式

* --遞迴出口

* --遞迴關係

*/public

intf1

(int i,

int[

] record,

int n)

int rs=0;

for(

int k=

0;kreturn rs;

}/**

* 判斷在(i,j)位置放置皇后違不違法

* --有沒有同列的?

* --有沒有在同一斜線的?

*/public

booleanf2(

int[

] record,

int i,

int j)

}return

true

;}

注:參考左神《程式設計師**面試指南》

亞子哥刷題之路 最長公共子串行長度

給定兩個字串s和t,返回這兩個字串的最長公共子串行的長度。dp i j 含義 s 0 i 和t 0 j 的最長公共子串行長度。注 dp i j 也可以定義為s 0 i 和t 0 j 的最長公共子串行長度,兩種定義方式邊界值的處理方式不同。看dp i j 與dp i 1,j dp i,j 1 dp i...

領扣刷題 N皇后問題

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

每日刷題 N皇后

n 皇后問題研究的是如何將 n 個皇后放置在 n n 的棋盤上,並且使皇后彼此之間不能相互攻擊。皇后的攻擊範圍為 自己所在的一行 自己所在的一列 以及自己所在的兩個對角線上。上圖為 8 皇后問題的一種解法。給定乙個整數 n,返回所有不同的 n 皇后問題的解決方案。每一種解法包含乙個明確的 n 皇后問...