8皇后以及N皇后算法探究,回溯算法的JAVA實現,遞歸方案(一)
算法思考,初步思路:
構建二維int或者short型數組,內存中模擬棋盤
chess[r][c]=0表示:r行c列沒有皇后,chess[r][c]=1表示:r行c列位置有一個皇后
從第一行第一列開始逐行擺放皇后
依題意每行只能有一個皇后,遂逐行擺放,每行一個皇后即可
擺放后立即調用一個驗證函數(傳遞整個棋盤的數據),驗證合理性,安全則擺放下一個,不安全則嘗試擺放這一行的下一個位置,直至擺到棋盤邊界
當這一行所有位置都無法保證皇后安全時,需要回退到上一行,清除上一行的擺放記錄,并且在上一行嘗試擺放下一位置的皇后(回溯算法的核心)
當擺放到最后一行,并且調用驗證函數確定安全后,累積數自增1,表示有一個解成功算出
驗證函數中,需要掃描當前擺放皇后的左上?
Java
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。