為什麼最難不過二叉樹的演算法出現在面試題中都會被應聘者抱怨?

時間 2021-05-07 00:55:35

1樓:LintCode領扣

關於這點,本牆頭草有話說,鄙人不才就是憑著刷題一路過關斬將衝進了大廠的。當初內心對於刷題應試也是抗拒的,但是後期真香了!!因為進了大廠,並且刷題後發現自己的能力提高了!

其實這就好比我們高考考數學,其實我們日常生活中用到的也不多,無非就是加減乘除。但是遇到某些複雜點問題的時候上學的知識點又用上了,這時候就體現了所學知識的重要性。同理面試題中出現二叉樹的演算法也是可以理解的,這可以幫助面試官辨別你的技術功底是否紮實

雖然平時工作不一定用得上,但是某些時刻需要時,你就可以快速調動你的知識庫。

在這點上,熟練掌握這方面知識同時又有豐富經驗的面試者就脫穎而出了。當然面試也不是只是做演算法題,你通過了寫題考驗,接下來就可以開始侃侃而談,聊聊你參與的專案等等。

要知道很多企業就是通過寫演算法題這樣的方式淘汰了一批人,特別是大廠(外企如:微軟、亞麻這類我們就不多說了;國內:位元組、阿里、快手、拼多多、京東等等),企業也希望招到演算法很厲害、工作經驗豐富的優秀人才,由此可見演算法在面試過程中是非常重要的,無論是大廠還是傳統企業面試基本上都是要問到演算法。

那麼怎樣高效的刷題呢?接下來是我之前在Lintcode刷題的經驗小結,希望對即將開始刷題的各位有幫助!

面試的演算法題只是你平時刷題遇到的一小塊內容,但是你又無法確定面試時會遇到什麼演算法題,那只能大規模的刷題,各個類別的題都涉獵。這個也是我之前聽過的演算法課上老師總結出的面試常見演算法知識點:(有備無患吧,有需要面試的朋友可以看看)

其中拓撲排序演算法、二分法、二叉查詢樹、雜湊表、動態規劃、堆、分治法...這些演算法和資料結構面試中常會遇到,其它的出現概率比較低但也可能會出現。

首先要根據自己的情況定製自己的刷題學習計畫,針對性的刷題。刷題絕對不能心急,思路和方法才是最重要的。國內大廠的面試比較少考難題,所以我給自己定的計畫也是圍繞簡單和中等題來的。

我之前是先把簡單和中等的題各刷了3遍,然後把中等題作為練習的重點,簡單題作為輔助練習,鍛鍊自己舉一反三的能力,遇到相同型別的題也能快速反應。後期也會給自己加難題,但是真的需要花很多時間,所以練習的量不大,而且面試一般也不會出這麼難的題,於是偷懶了,哈哈哈幸運之神眷顧的人。

刷到一定階段,我就開始針對想要去的大廠進行刷題計畫了,LintCode上還蠻多國內大廠面試真題

但是不能光刷題,還要學會講題,面試時你表述不清楚如何得到題解,面試官會以為你是背的答案,這就很尷尬了。所以在做計畫時,也要把這趴安排上~

最後,也是最重要的。刷題刷得熟練,不代表你就一定能拿到Offer了!!!面試看的是應聘者的綜合實力,解題只是其中一部分,所以除了刷題外,你還需要準備許多,譬如:

簡歷的準備、面試模擬、各大公司的偏好了解...

要準備的還是挺多的,我當初還是小白的時候真的是對這些一竅不通,憑著一身孤勇應聘了幾個大廠,結果通通吃了閉門羹。雖說不是做題一流,但是也還不錯來著,真的受了極大打擊。然後自己悄咪咪的報了個演算法班,才知道原來面試有這麼多的套路和注意事項。

果然還是要職場老鳥指路!

2樓:Cwan

不是題目本身的問題。

同樣是面試乙個小時,你面完FANNG後即使知道掛了但這一小時還是挺開心的,面阿里位元組這種那乙個小時你覺得你在被沒耐心的碼農PUA。

3樓:

因為工作中用不上,為了面試才準備,過後又扔了,也不知道為哪般,都工作這麼些年了,還要受應試教育的罪。考察能力和水平的方式多了去了,如何面試,我覺得大部分面試官自己都沒想明白。

4樓:

1、實際過程中百分之99的人都用不到

2、如果你不刷題,一年就會忘的差不多的人也高達百分之99(我不否認九成的it人士真的很菜)

3、演算法對絕大多數it人士的定位應該是愛好,而不是剛需4、甭管吹的多麼高大上,演算法對於絕大多數人而言,就只有面試有用(前幾天乙個位元組的面試官老哥也和我吐槽過這事)

5、除非崗位競爭十分激烈,或者該崗位對演算法是剛需。不然演算法並不應該作為核心的考察點(想起了二叉樹反轉事件)

5樓:菜刀劍聖

二叉樹非常基礎,基礎到網上一搜就有結果,甚至已經被多層封裝了,非常好用。

就像建築工人去面試泥水工的時候面試官問你會燒磚嗎?這時你會發現自己腦子裡還是有一點點燒磚的印象,但是這完全不影響你造房子啊,為什麼要問呢?面試官應該問什麼時候應該用什麼樣的磚頭更好,每種磚頭水泥有什麼特點,而不應該糾結於怎麼造出磚頭的。

因為google30s就能把磚頭給你,為什麼還要糾結於怎麼燒磚呢?

6樓:RavenclawOIer

歪個樓,寫幾道二叉樹的題目吧

給你一棵二叉樹,請輸出其前序遍歷的結果

給一棵二叉樹,有點權,找出其最大對稱子樹的大小,對稱子樹是指這個子樹的所有子節點交換左右以後點權和形態不變。

寫乙個資料結構,支援區間修改和查詢區間和。

給定n個整數構成的序列,對於指定的閉區間查詢其區間內的第k小值。

有一棵二叉樹模型掛在牆上,樹根在最上面,左右子樹分別在樹根的左下方與右下方,且他們也都滿足這樣的懸掛規則。為了讓這個模型更加美觀,HR 君選擇了一種讓這棵二叉樹的中序遍歷序列最小的懸掛方法。所謂中序遍歷最小,就是指中序遍歷的結點編號序列的字典序最小。

一天,這個模型不小心被掉在了地上,幸運的是,所有結點和邊都沒摔壞,但是她想不起這個模型原來是怎麼懸掛的了,也就是說:她想不起來樹根節點的編號了。現在請你求出最小的中序遍歷。

7樓:

有的人是能力不達標。

有的人是思維方式不適應軟體開發所需要的思維方式。這個很可能是天生的特點傾向,談不上優劣的標籤,就是不適合而已。

8樓:jacob benseal

因為我去面影象演算法,你考我動態規劃,我知道動態規劃不難,但我根本沒搞過啊。

我去打籃球,你讓我顛球?我???

然後還說我技術不行,我?????

9樓:flashyiyi

因為演算法一般應屆生比較熟,工作年限長的人不熟。畢竟不常用的東西久了都會忘。

也就是說,用這個做篩選條件,往往是工作年限越長的越容易被篩選掉。

你的意思是姜是嫩的辣麼?

而二叉樹這個級別的演算法本身又毫無難度,起不到篩選智力的作用。

簡而言之,這個問題答上了什麼問題都說明不了,因為太簡單。答不上,應屆生的話說明書沒好好讀,篩掉不能算錯,但非應屆生則很可能只是忘了,沒有任何意義。

而且,筆試題裡,比演算法能起到更好的篩選功能的問題很多。

現在正常的筆試依然會考下演算法,但比重很低。

如果出一些有難度的演算法我是贊同的,現在的固定題目準備過的都會,完全沒意義。

10樓:支浩宇

因為正常人寫程式是用鍵盤敲,有IDE,有語法檢查,然後能上網我就不要求了但實際工作中是一定有的。

而這種讓你寫演算法的面試題90%以上是給一張紙讓你寫,而且給的空位往往只夠寫10到20行的字。

我們不是抱怨題目,而是從這種考查形式所看出來的考官以及公司的思想觀念的落後和無知。都幾十歲的人了,還用初中小學的考試方法來篩選人才?

11樓:

這是乙個態度問題,面試都不好好準備,公司還指望他今後在公司能做出什麼成績。

我現在做前端工作,對演算法要求不高,但也會準備到快排和簡單的動態規劃的地步。

12樓:

因為面試演算法這玩意其實一般就兩種結果:

題目我做過,刷刷刷一下子寫完了,面試啥都沒測出來題目我壓根沒見過,半天沒想出思路,面試依然啥都沒測出來演算法其實也就是為了刷人而存在的,所以現在大廠面試大家都乙個勁的刷題唄。。。。甭管有沒有用,題海使勁背就行了。

被抱怨無非就是覺得自己的能力沒展現出來就被刷了

13樓:不胖的羊

很實際的例子,比如說雜湊表

資料量超過原本空間一半,效率就會嚴重下降。

這個時候你會演算法,你就是技術精英,改乙個引數就能提高幾倍效率。不會,就是渣。

14樓:Macsnake

計算機軟體開發與數學有強關聯的部分佔比很低,而且數學相關和複雜資料結構在大部分工作中也極少用到。即使偶爾做這部分也很快因為大量常規工作淹沒而逐漸遺忘,所以人們反感這種考試。

15樓:程式碼之路

我來嘗試回答一波大部分普通程式設計師平時多數都是在實現業務邏輯為主並且這裡面大部分業務邏輯不需要使用到複雜的演算法也可以完成因為在機器效能沒有成為瓶頸的前提下而且資料沒有海量 On平方和logn人肉感知沒有明顯差別的。人總是會不自覺尋找安逸那麼自然就慢慢形成了演算法好像沒用啊有啥用很容易出現這種想法。但恰恰程式設計師的門檻就在這裡寫程式就像登山普通的業務邏輯大家都會寫但是在不斷爬坡的過程或者有一天你很可能會遇到一座大山可能會遇到海量資料高效能需求的場景這時候演算法資料結構就是你的登山裝備除非你選擇停在半山腰休息放棄等待後來者超越你。

所以應該感謝面試時候堅持出演算法題前提是不要特別複雜那種的面試官否則你就算面試通過你是不是應該考慮你身邊的同事和專案遇到大山的時候是不是有無數的坑等你去踩隨時摔死

16樓:

問題不在於難,而在於確實太偏門。大家想想,程式設計師待遇為啥比其他純技術工種待遇相對高點,就是程式設計師要掌握的知識點太多了。我隨便舉個例子,有多少人可以完全弄懂xcode裡各種工程配置項。

不是弄不懂,而是大家沒這個時間,老闆也不會為你懂這個支付工資。這種性質就決定了,程式設計師接觸的越多、用得越多的知識點,就越熟悉。大多數程式設計師只是api使用者,考二叉樹太多餘,而且一旦工作有需要,我們這些高數考前突擊一周就通過的學習高手會搞不定二叉樹,豈不是笑話。

作為知識點,二叉樹不值得考,很容易招進面試前突擊學習的人。作為能力考研,最好辦法是把二叉樹的文件和題目都給面試者,他能在多短時間內利用文件解決問題。

17樓:蒜葵

公司招個臨時工,幹點髒活。結果HR問他,你劍道幾段,散打得過什麼獎,居合砍草蓆會不會?

不會嗷,我們公司叻是一向很尊重人才的。吶,這裡有把木刀,你把九刀和kata1-5打一下。

職業殺手扭頭就走了,mdzz。

18樓:

找工作的時候總結的一點二叉樹的基礎演算法題,easy難度,有時間再更medium + hard難度。

【演算法】-二叉樹的問題整理

19樓:趙子晟

二叉樹這種演算法,感覺已經融到血液裡了,雖然工作中不經常用,但是想忘都難,所以很不理解那些寫不出來的同學,大學是在幹什麼。

c 寫二叉樹的問題?

z root 好吧,我努力做個段子手 假設你和朋友一塊去買東西,你朋友問你錢包裡有多少錢,這個時候你該怎麼做 下面就用你寫二叉樹的思路來模擬一下 A 我想知道你錢包裡有多少錢?B 我這裡有個數錢的功能,你給我一筆錢,我就能告訴你這是多少錢?A 那你把錢給我呀 B 把錢包裡的錢掏給了A A 把錢遞給了...

為什麼天然水系都是二叉樹結構?

週少禹 山脈是沿一定方向延伸,包括若干條山嶺和山谷組成的山體,因像脈狀而稱之為山脈。在回答這個問題前有必要理解一下這個概念。割我覺得你這個問題是個偽命題。天然水系的二叉樹結構這種觀點是從水的終點逆向推向源頭的,所以是二叉樹結構。人們都知道水往低處流而低處往往就是兩座山脈相接的地方,而河流的流向又受地...

如何把自定義的二叉樹 functor 「公升級」 成 Applicative, 即 實現 函式?

Belleve Bstwhere pure x Node x Leaf Leaf Leaf Leaf Leaf Leaf Node f lf rf Node x lx rx Node f x lf lx rf rx Node f lf rf xs Node x lx rx combine2 map ...