国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

24點算法設計 - 暴力美學

2019-03-04 22:22 作者:AICDG  | 我要投稿

最近又要到校園招聘的時間了,我也是跟風參與了筆試題的出題。出題過程中,有一道我覺得還不錯的題被刷掉了覺得非??上?,就是這道算24點的題目。既然不出了,我就拿出來分享一下,通過這道題,來幫大家熱熱身(雖然我覺得大家已經(jīng)在狂刷各種OJ了)。

一般思路——動態(tài)規(guī)劃

相信大部分人第一反應都是暴力算法,這很正常,但是無論筆試還是面試,一句暴力算法是什么問題都沒解決的,怎么暴力才是關鍵。回答題目,這個問題如果基礎知識牢固的同學自然有簡單粗暴的辦法,但是沒有的話,你的解法肯定就是回溯法了。

簡述一下24點牌回溯法的思路:

1. 先編寫計算兩張牌計算得到24點的函數(shù)

2. 以1中函數(shù)為基礎,編寫計算三張牌得到24點的函數(shù),((1+1)+1),計算兩次兩張運算

3. 對4張牌進行分組,分成(3 + 1)和(2 + 2)兩種情況,然后開始回溯,(((1+1)+1)+1) or ((1+1)+(1+1)),都是3次兩張運算

整體上這應該是比較簡單而且容易想到的思路了,也和實際玩24點牌時的思路接近。BUT,這個思路有一個巨大問題,就是代碼不好寫,也不太好調(diào)試。一般校招筆試一道題也就30分鐘左右,計算回溯層數(shù)太多的方法在校招中其實非常吃虧。

暴力美學——窮舉法

我之前提了一嘴基礎知識牢固,現(xiàn)在就要說一下了。相信有些同學是想用窮舉法的,但是想了想又算了,因為括號運算符很難表示。但如果你用后綴表達式,那括號無法表示的問題就迎刃而解了。

首先給個最暴力算法吧,加減乘除四則運算需要三個,且有可能同一個運算符需要使用三次(例如 6+6+6+6),四個數(shù)字再加3個運算符進行全排列,窮舉數(shù)量為

當然這是非常復雜的情況,實際上有非常多的優(yōu)化,比如:

后綴表達式的最開始兩位一定都是數(shù)字,所以可能性縮減為

再比如24點可能是三連加,三連乘,但是不會出現(xiàn)三連減,三連除,所以可能性進一步縮減為

還有很多其他的優(yōu)化,就不再列舉了,不過切記一點,這是在筆試,筆試是有時間限制的,因此不要想著做太多簡化而增加自己的代碼量,一切以完成為最優(yōu)先。

后綴表達式看似簡單多了,但是對于平常代碼量不太大的同學來說,還是有難度,寫個后綴表達式求解就有點難度了,比如字符串parse,還有后綴表達式的計算,無論是基于棧還是基于二叉樹,都是有難度的。所以,平常代碼量不太大的同學,還是應該緊張起來的。

提前預祝各位參加校招的同學一切順利。

24點算法設計 - 暴力美學的評論 (共 條)

分享到微博請遵守國家法律
红原县| 阿鲁科尔沁旗| 确山县| 齐齐哈尔市| 扶绥县| 敦煌市| 青神县| 兰州市| 河间市| 土默特左旗| 招远市| 鹤峰县| 琼海市| 顺昌县| 双峰县| 灵川县| 老河口市| 丹巴县| 荣昌县| 防城港市| 呼图壁县| 白银市| 元谋县| 资阳市| 五家渠市| 墨竹工卡县| 富平县| 达州市| 台山市| 荣成市| 鸡东县| 肥乡县| 柞水县| 冕宁县| 义马市| 肇东市| 金昌市| 垫江县| 铜山县| 永靖县| 龙南县|