51. N-Queens
Last updated
Last updated
n queen
提問
確認題意: col, row, diagonal都只能有一個queen
parameter
record list
res list
n
new row (new col在程式中)
col list (存放已經放入的queen的位置)
test input
說明想法
isValid function:
檢查col:
col list的index是row, value是col, 由於在相同row下我們只有放一個queen, 因此檢查時只需要檢查col有沒有collision
檢查對角線: 新位置跟array中的所有值去比較, col的差值不可以等於row的差值
solveHQ function
DFS
base case: 當new row == n表示所有row都擺上了queen, push record到res中
ray tracking: 在每一輪中嘗試對new row的不同col放置queen, 若能通過isValid, 則push到record及col中, 進到下一輪迭帶, 如同別的DFS + ray tracking題目, 要記得pop回來
測試計算複雜度