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個數為...