前任三最近非呈坦火了询吴,票房蹭蹭往上升,昨天也去電影院看了亮元,想起了我的前任猛计,她是一名女程序員,為了讓我學(xué)好java爆捞,她曾經(jīng)親自教我Java的算法奉瘤,學(xué)算法是件非常重要的事,在這忍住回憶的悲傷煮甥,分享給你們毛好。
1.Algorithm Gossip: 八皇后(她曾經(jīng)也是我的皇后)
說明:西洋棋中的皇后可以直線前進(jìn),吃掉遇到的所有棋子苛秕,如果棋盤上有八個皇后,則這八個皇后如何相安無事的放置在棋盤上找默,1970年與1971年艇劫, E.W.Dijkstra與N.Wirth曾經(jīng)用這個問題來講解程式設(shè)計之技巧。解法關(guān)于棋盤的問題惩激,都可以用遞回求解店煞,然而如何減少遞回的次數(shù)?在八個皇后的問題中风钻,不必要所有的格子都檢查過顷蟀,例如若某列檢查過,該該列的其它格子就不用再檢查了骡技,這個方法稱為分支修剪鸣个。
2.Algorithm Gossip: 生命游戲(我們曾經(jīng)都是彼此的另一半生命)
說明生命游戲(game of life)為1970年由英國數(shù)學(xué)家J. H. Conway所提出,某一細(xì)胞的鄰居包括上布朦、下囤萤、左、右是趴、左上涛舍、左下、右上與右下相鄰之細(xì)胞唆途,游戲規(guī)則如下:
孤單死亡:如果細(xì)胞的鄰居小于一個富雅,則該細(xì)胞在下一次狀態(tài)將死亡掸驱。
擁擠死亡:如果細(xì)胞的鄰居在四個以上,則該細(xì)胞在下一次狀態(tài)將死亡没佑。
穩(wěn)定:如果細(xì)胞的鄰居為二個或三個毕贼,則下一次狀態(tài)為穩(wěn)定存活。
復(fù)活:如果某位置原無細(xì)胞存活图筹,而該位置的鄰居為三個帅刀,則該位置將復(fù)活一細(xì)胞。
解法生命游戲的規(guī)則可簡化為以下远剩,并使用CASE比對即可使用程式實作:
鄰居個數(shù)為0扣溺、1、4瓜晤、5锥余、6、7痢掠、8時驱犹,則該細(xì)胞下次狀態(tài)為死亡。
鄰居個數(shù)為2時足画,則該細(xì)胞下次狀態(tài)為復(fù)活雄驹。
鄰居個數(shù)為3時,則該細(xì)胞下次狀態(tài)為穩(wěn)定淹辞。
(給你們分享一個java學(xué)習(xí)交流裙:475820025 ?進(jìn)裙邀請碼(編號):寂靜医舆。那是我一開始遇見她的地方,雖然已經(jīng)不在了象缀。
裙內(nèi)不定時分享干貨和各類源碼蔬将,包括2017最新的java企業(yè)案例學(xué)習(xí)資料和零基礎(chǔ)入門教程,歡迎自學(xué)的小白和大神入群學(xué)習(xí)交流央星,分享源碼
)
3.Algorithm Gossip: 三色棋(我們曾有過通宵下棋的瘋狂)
描述:三色旗的問題最早由E.W.Dijkstra所提出霞怀,他所使用的用語為Dutch Nation Flag(Dijkstra為荷蘭 人),而多數(shù)的作者則使用Three-Color Flag來稱之莉给。假設(shè)有一條繩子毙石,上面有紅、白颓遏、藍(lán)三種顏色的旗子胁黑,起初繩子上的旗子顏色并沒有順序,您 希望將之分類州泊,并排列為藍(lán)丧蘸、白、紅的順序,要如何移動次數(shù)才會最少力喷,注意您只能在繩子上 進(jìn)行這個動作刽漂,而且一次只能調(diào)換兩個旗子。
4.Algorithm Gossip: 老鼠走迷官(一)(愛情的迷宮弟孟,兜兜轉(zhuǎn)轉(zhuǎn)贝咙。。最后還是走到了分手的終點)
問題描述:給定一個二維數(shù)組拂募,數(shù)組中2表示墻壁庭猩,0表示通路,由此數(shù)組可展示為一個迷宮圖陈症。給定入口位置和出口位置蔼水,判斷之間是否存在通路并顯示出走出迷宮的道路。
問題解答:實際上是使用回溯算法求解該問題录肯,就是在上下左右四個方向試探趴腋,倘若有路則走一步,在新的位置繼續(xù)在四個位置試探论咏,并且對走過的路進(jìn)行標(biāo)記优炬,倘若走到死胡同里,則退回上一步再來試探厅贪,以此類推蠢护,類似于圖的深度優(yōu)先算法,使用遞歸來實現(xiàn)养涮。
5.Algorithm Gossip: 老鼠走迷官(二)(如果可以的話葵硕,能和我再走一次這愛情的迷宮嗎)
說明:由于迷宮的設(shè)計,老鼠走迷宮的入口至出口路徑可能不只一條单寂,如何求出所有的路徑呢?解法求所有路徑看起來復(fù)雜但其實更簡單吐辙,只要在老鼠走至出口時顯示經(jīng)過的路徑宣决,然后退回上一格重新選擇下一個置繼續(xù)遞回就可以了,比求出單一路徑還簡單昏苏,我們的程式只要作一點修改就可以了尊沸。
看完前任三,分手多年贤惯,現(xiàn)如今的我已經(jīng)成為了一名java程序員洼专。回憶終究只是過去孵构。敲代碼才是現(xiàn)在屁商。我禿了,我也變強了颈墅。