⑴ 一般面試要求會C/C++數據結構的會出什麼題考你
數據結構只是基礎,面試中最可能的形式是考查演算法。演算法中又會用到哈希、鏈表等各種數據結構。給你一個例子:
問: 設計演算法,求兩個集合的交集。
就這么個簡單的問題,要實現一個高效的演算法可能用到排序演算法、哈希等數據結構的知識
⑵ 演算法崗面試都會考代碼嗎
會。
演算法崗面試的第一關,手撕代碼環節,主要考察你對數據結構和一般演算法的掌握,以及作為碼農最基本的編程能力。二至三道編程題寫完之後,就進入到了面試的第二關,演算法基礎知識考察環節,這里的演算法指的是機器學習、深度學習以及細分方向上,比如CV、NLP相關的演算法知識。
⑶ 刷LeetCode對於國內IT企業面試幫助大嗎
就目前的情況來看,國內公司社招面試中,對於對於演算法的考驗越來越多,很多公司會拿leet code的原題用於面試。
根據我的了解,目前國內的中型廠記下的基本上不會考驗演算法題不會哪一道編程題,讓你手寫指示會咨詢你一些項目經驗,包括一些基礎的資料庫類的知識,或者是編程基礎類知識,比如說你用java開發怎麼會問你spring cloud的spring boot相關知識,還有一些可能會問你高並發,生產問題處理,linux伺服器命令等等,手撕紅黑樹的情況不多。
對於國內的這些外資企業微軟、蝦皮等等,可能會問一些演算法題,但一般都不會特別難。數據結構問鏈表二叉樹,演算法問動態規劃之類的吧,也是min和easy難度。
對於頭部的大廠可能會出一些hard級別的演算法題,或者是改編過的編程題。目前程序員的人數越來越多,所以未來可能會有更多的公司會通過手撕編程題的方式進行面試。
對於校招來說說來的時候呢,是非常有幫助的,聽不起。各大公司的面試題中都會有演算法題,所以必須要通過刷leetcode來提升自己的。有可能你會遇到一些原題。
不管怎麼樣說演算法題都是很有幫助的,有助於提升編碼能力和邏輯能力,可以讓你的編碼能力一直保持一個不錯的水平,因為很多人平時都是curd小子,很多基礎知識都忘記了包括演算法能力。
leetcode上題很多,逐漸你會發現刷題太耗時間,所以建議採用哈夫曼樹規則。高頻題優先,各個tag刷10題以上掌握典型題總結演算法套路,先把觸手放在能掌握的地方。然後再去重點刷貪心和dp,分類好思路和模板。再去牛客搜公司名刷一些該公司面試題,有個底不至於面試沒見過。建議medium為主,easy和hard為輔。
一零言,聊聊IT,談談技術
⑷ 程序員面試時都要考演算法嗎
看應聘什麼職位...我面試的時候一點演算法都沒有涉及到...
某些特定開發崗位確實需要扎實的演算法基礎.比如根雲存儲,大數據什麼的.但是像普通的程序開發崗位應該對演算法要求不大.
所以,我猜測:如果面試跟演算法不怎麼相關的職位考官還問演算法的問題時,應該是你前面的回答還不足以讓考官錄用你。考官在給你展示自己的機會.
⑸ 面試筆試中讓設計一種演算法,是不是必須要寫出代碼來啊
一般面試考演算法會考察你幾個方面
1. 如果考官覺得你基礎知識不錯,考演算法一般就是看你對一些常見知道的熟練程度,是否會靈活運用。就是看你有沒有解決一個新問題的能力。一般偽代碼說想法就行,一般會較難的問題。
2. 若覺得你的基礎知識不行,可能目的就是探查你有沒有基礎的代碼能力了。因為有很多人能說,但是不能寫,哈哈。
3. 有些公司一定要求是要寫代碼的。或者有一些考官是這種風格的。但是寫的話多半都是簡單的,所以有機會多熟悉一下,基本的像排序,冒泡,快排什麼的啦。
⑹ 小米麵試每一輪都有演算法嗎
一共兩輪,兩個不同類型的面試官,一輪要一小時左右,兩輪都要紙上寫代碼,給我最大的感觸就是問得特別深,是越來越深,直到你答不出來。
第一輪問了我STL的一些數據結構,其內部實現。我說了map是紅黑樹,unordered_map是hash表,之後我不小心說到hash表最常見的實現就是一個鏈表數組,鏈表是為了處理沖突。於是又問我hash表處理沖突的方式,也難不倒我。再問讓我寫一個hash表存儲用戶的圖片,大概要多少位hash值才能盡可能沒沖突。我大概算了一下。下一個問題是while(1) sleep(x);這里x大概要多少秒(可小數)才能使cpu忙碌。大家估計一下我心理陰影面積。然後看我操作系統內部了解不多,又問了一堆。(這就是為什麼我們應該好好讀<<深入理解計算機系統>>)我答得十分糟糕。之後讓我寫一個鏈表反轉,我感覺有點詫異,想不到這玩意還真這么容易考到。詫異是詫異,沒花我多長時間就搞定一個O(n)時間O(1)空間的鏈表反轉了。又讓我說如果要實現一個lrucache,怎麼實現?我記得教材上有說過用棧,我就直接說棧,面試官反問了我一堆問題,後來我又說用鏈表,不過可能空間消耗比較大,面試官問我為什麼,我說有個指針域(我也是蠢哭),然後就直接打發我走了。
本來我以為我沒機會了,想不到一輪面試官給面子,讓我到了二輪。
一上來,看見我簡歷上一個項目寫了tfidf,就問我其是什麼,我大概說了是頻率和逆向頻率的綜合,又要我給出精確定義。我放棄(不太確定)。雖然我不久前剛看過定義,但當時沒怎麼仔細思考,畢竟sklearn里都有現成實現。之後讓我寫一個singleton,這玩意當然難不倒我。寫完後又要我寫一個線程安全的版本,我用了鎖,但他說開銷太大。我繼續放棄(我印象中確實有的,但是比較底層,我對這種底層的東西沒啥興趣,要是有興趣,一面也不會那麼慘了),並反問他怎麼辦,他說了一個check twice(但我之後上網沒找到)。之後問我拓撲排序(當然難不倒我)和java線程模型,這里我十分可笑,竟然把可重入鎖說成自旋鎖(自旋鎖是lock後並不會讓此線程立刻放棄cpu,而是等待一會;可重入鎖是同一個線程可以多次獲得)。又讓我寫二叉樹後序的迭代版本,我壓根沒寫過,只看過一次,那次看的實現還特別復雜,最慘的是,房間里另一對面試的有些影響我,心想這下出事了。磨磨蹭蹭寫出了一個版本,面試官一看就否決了,我仔細一看,確實有問題,不過加上兩個標記還是成功搞定。之後問了我要是去了小米想做什麼,我十分可笑,說我想做比較酷的事(正常情況我是不會這么說的,我真正想法是做有趣的事,考慮到是小米),又問我做過什麼酷的事,我答不出來,隨口說了個裝linux系統,使用cli,頓時感覺自己low爆了,還不如說在android上裝linux呢!還問我哪方面比較薄弱,我當然是說計算機圖形學了。之後說了我一些缺點,比如有點油(tfidf惹的貨),知識面廣但都不深。數據結構是不錯(可能是我簡歷上寫了解B樹和紅黑樹),但演算法不行(筆試最後兩題,都只能給出差強人意的答案,不夠極致(原話))。之後就把我打發走了,事後我還覺得有些希望。但這么多天過去了,越想越覺得沒戲。
感覺自己還是太弱,還得多讀書,多寫代碼,來年春招再投。