高效設計
偽**先行
控制節奏
規範編碼
精心測試
例如,面試官可能會問這樣乙個問題:「請你估算一家商場在**時一天的營業額」,求職者如何能夠得出乙個準確的資料呢?其實本題只要能夠分析出乙個概數就行了,不一定要得出精確資料,而分析概數的前提就是做出各種假設。以該問題為例,可以嘗試從以下思路入手:從商場規模及商鋪規模入手,通過每平方公尺的租金估算出商場的日租金,再根據商鋪的成本構成得到全商場日均交易額,然後考慮**時的銷售額與平時銷售額的倍數關係,乘以倍數,即可得到**時一天的營業額。具體而言,包括以下估計數值:
1)以一家較大規模商場為例,商場一般按6層計算,每層大約長100m,寬100m,合計60000m2。
2)商鋪規模約佔商場規模的一半,合計30000m2。
3)商鋪租金約為40元/m2,估算出年租金為40元/m2×30000m2×365天=4.38億元。
4)對商戶而言,租金一般佔銷售額的20%左右,則年銷售額為4.38億元÷20%=21.9億元,則計算平均日銷售額為21.9億元/365天=600萬。
5)**時的日銷售額一般是平時的10倍,所以大約為600萬×10=6000萬。
此類題目涉及面比較廣,例如,「估算北京小吃店的數量」「估算中國在過去一年速食麵的市場銷售額」「估算長江的水的質量」「估算乙個行進在小雨中的人5min內身上淋到的雨的質量」等等。但一般都是即興發揮,遇到此類問題,讀者應一步步地抽絲剝繭,找準要點,合理分析,給出具有說服力的答案。
(1)歸納法此方法通過寫出問題的一些特定的例子,分析總結其中一般的規律。具體而言就是通過列舉少量的特殊情況,經過分析,最後找出一般的關係。
(2)相似法
正如編者「年年歲歲花相似,歲歲年年仍單身」一樣,此方法考慮解決問題的演算法是相似的。如果面試官提出的問題與求職者以前用某個演算法解決過的問題相似,此時此刻就可以觸類旁通,嘗試改進原有演算法來解決這個新問題。而通常情況下,此種方法都會比較奏效。
(3)簡化法
此方法首先將問題簡單化,例如改變一下資料型別、空間大小等,然後嘗試著將簡化後的問題解決,一旦有了乙個演算法或是思路可以解決這個被「閹割過」的問題,再將問題還原,嘗試著用此類方法解決原有問題。
(4)遞迴法
為了降低問題的複雜度,很多時候都會將問題逐層分解,最後歸結為一些最簡單的問題,這就是遞迴。此種方法,首先要能夠解決最基本的情況,然後以此為基礎,解決接下來的問題。
(5)分治法
任何乙個可以用計算機求解的問題所需的計算時間都與其規模有關。問題的規模越小,越容易直接求解,解題所需的計算時間也越少。而分治法正是充分考慮 到這一點內容,將乙個難以直接解決的大問題,分割成一些規模較小的相同問題,以便各個擊破,分而治之。分治法一般包含以下三個步驟:1)將問題的例項劃分 為幾個較小的例項,最好具有相等的規模;2)對這些較小的例項求解,而最常見的方法一般是遞迴;3)如果有必要的話,合併這些較小問題的解,以得到原始問 題的解。
分治法是程式設計師面試常考的演算法之一,一般適用於二分查詢、大整數相乘、求最大子陣列和、找出偽幣、金塊問題、矩陣乘法、殘缺棋盤、歸併排序、快速排序、距離最近的點對、導線與開關等。
(6)hash法
很多面試筆試題目,都要求求職者給出的演算法盡可能高效。什麼樣的演算法是高效的?一般而言,時間複雜度越低的演算法越高效。而要想達到時間複雜度的高 效,很多時候就必須在空間上有所犧牲,用空間來換時間。而用空間換時間最有效的方式就是hash法、大陣列、位圖法。當然,此類方法並非包治百病,有時, 面試官也會對空間大小進行限制,那麼,此時,求職者只能再去思考其他的方法了。
其實,凡是涉及到大規模資料處理的演算法設計中,hash法就是最好的方法之一。
(7)輪詢法
每道面試筆試題,在設計時,往往會有乙個載體,這個載體便是資料結構,例如陣列、鍊錶、二叉樹、圖等,當載體確定後,可用的演算法自然而然地就會暴露出來。可問題是很多時候並不確定這個載體是什麼。當無法確定這個載體時,一般也就很難想到合適的方法了。
面試經驗(3) 位運算技巧
1 左移操作符 將a的二進位制表示的每一位向左移b位,左邊超出的位截掉,右邊不足的位補0 a 1100 b 2 a b 110000 2 右移操作 a b c語言 只有邏輯右移 a b 邏輯右移 將a的二進位制表示的每一位向右移b位,右邊超出的位截掉,左邊不足的位補0。a b 11111111111...
IT面試技巧
回答樣本一 我對工資沒有硬性要求,我相信貴公司在處理我的問題上會友善合理。我注重的是找對工作機會,所以只要條件公平,我則不會計較太多。回答樣本二 我受過系統的軟體程式設計的訓練,不需要進行大量的培訓,而且我本人也對程式設計特別感興趣。因此,我希望公司能根據我的情況和市場標準的水平,給我合理的薪水。回...
騰訊面試經驗
三面是總監面,本人不幸被拒了,這次面試沒有問專案相關的問題,專案的問題是放在二面問的。三面給人的感覺要求很嚴,有些問題看似基礎,但問得很細,稍有閃失就被pass,絕不能有模稜兩可那種回答,以下是面試題 1 tcp三次握手的過程,accept發生在三次握手哪個階段?2 tcp流,udp的資料報,之間有...