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 皇后問...