Java解決八皇后問題

八皇后這個問題在這裏就不介紹了,解決此問題,用到的是回溯遞歸算法。

         當我第一次聽到回溯時(小編也是小白),我就在想,這是如何回溯的。其實,在這個問題中,回溯就是for循環到最後不滿足時會自動退回到上一層的循環,類似於深度優先遍歷(這是小編的想法),一開始也會了很多時間去看了看算法,感覺算法看懂了,感覺自己會了,今天突然想用代碼實現結果卻遇到問題,其實大多數代碼都能寫出來,就是在位置檢測的時候出現了問題,導致花費了很多時間,這就是我們日常生活中的眼高手低所造成的,然而我明白了,要想真正的成爲一名大神,我們是要不斷的實踐的。  小編就不廢話了,接下來介紹解決問題的思路。



        回溯法解決此問題,不外乎三個過程:1、回溯遞歸;2、安全位置檢測(判斷皇后所處的位置是否安全);3、數組遍歷(輸出皇后所處的位置)  代碼如下


注意一下位置判斷,我們只需要判斷當前皇后位置之前的危險位置上是否放置了皇后,其之後的位置不予治理,如果你考慮進去了,有可能會出錯,會導致解法減少。由於你在回溯是會傷到上一層,但是他它下一層的皇后位置並沒有清零,清零的會在上一層滿足皇后的位置時發生。

小編認爲講得很詳細了,如果還是看不懂,請把你的腦袋撞一下桌子(當然開玩笑啦),睡一覺吧!   我也是一覺睡醒後腦洞大開。當然我也看了好幾遍別人的代碼,征服困難的道路上是很艱辛的,當你征服了回頭看時,一切是那麼渺小。                                               QQ:925553434  (歡迎交流)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章