LintCode 33 N皇后問題

2021-09-20 09:42:32 字數 1102 閱讀 6021

n皇后問題是將n個皇后放置在n*n的棋盤上,皇后彼此之間不能相互攻擊。

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

每個解決方案包含乙個明確的n皇后放置布局,其中「q」和「.」分別表示乙個女王和乙個空位置。

例1:

輸入:1

輸出: [["q"]]

例2:

輸入:4

輸出:[

// solution 1

[".q..",

"...q",

"q...",

"..q."

],// solution 2

["..q.",

"q...",

"...q",

".q.."

]]

public class solution 

listcols = new arraylist<>();

dfssearch(result, cols, n);

return result;

}public void dfssearch(list> result,listcols, int n)

for (int colindex = 0; colindex < n; colindex++)

cols.add(colindex);

dfssearch(result, cols, n);

cols.remove(cols.size() - 1);}}

private listdrawchessboard(listcols)

chessboard.add(stringbuilder.tostring());

}return chessboard;

}private boolean isvalid(listcols, int column)

if (cols.get(rowindex) - column == rowindex - row)

if (cols.get(rowindex) - column == row - rowindex)

}return true;

}}

後續新增

33 N皇后問題

原題 n皇后問題是將n個皇后放置在n n的棋盤上,皇后彼此之間不能相互攻擊。給定乙個整數n,返回所有不同的n皇后問題的解決方案。每個解決方案包含乙個明確的n皇后放置布局,其中 q 和 分別表示乙個女王和乙個空位置。您在真實的面試中是否遇到過這個題?yes樣例對於4皇后問題存在兩種解決的方案 q.so...

N皇后問題

include define maxqueens 20 define minqueens 4 enum bool typedef struct queendata queendata queendata queens maxqueens 1 int ncount init int init chec...

N皇后問題

採用遞迴回溯法 執行結果 輸入8 對於n皇后解的個數,參考 當n 16時,構造法給出解,參考poj 3239 一 當n mod 6 2 且 n mod 6 3時,有乙個解為 2,4,6,8,n,1,3,5,7,n 1 n為偶數 2,4,6,8,n 1,1,3,5,7,n n為奇數 上面序列第i個數為...