北京北大青鳥學校分享:Google公司的面試問題(上)

面試是我們進入一家公司的第一步,保持良好的形象與言行舉止是必不可少的。同時對于應聘技術方面的人員來說,掌握最關鍵的技能更是必不可少。那么在一些大公司里是怎樣面試技術人員的呢?北京北大青鳥學校今天就與大家分享一下全球知名互聯(lián)網公司Google的面試問題。

1.請寫出一個整數(shù)乘法的算法
挑戰(zhàn): 這是一個相當開放性的問題,設計初衷是看看工程師是否會定義參數(shù)。
編程語言是什么?
是匯編語言嗎?
是:那么你得白手起家開發(fā)出一套基本運算來。
否則的話:那就簡單了,只需將數(shù)字套進去即可,因為大部分語言均支持數(shù)學運算。

2.合并兩個排序鏈表
挑戰(zhàn): 這類問題是Google面試問題的一個共同趨勢:找出解決問題的有效辦法。
合并兩條鏈表是一般會在鏈表之間發(fā)生“沖突”(因為它們各自有特定的次序,而你的合并會把次序搞亂)你必須找出一種算法快速消除那些沖突。(北京北大青鳥學校

3.給出一組區(qū)間(以秒計),讓你找出重疊的部分
挑戰(zhàn): Google一般也會要你解決一堆數(shù)學問題。
這些設計的意圖是讓工程師對問題進行有效的思考,而不是僅僅知道如何對每個問題進行編碼。
此處的問題會要你實現(xiàn)一個聰明的數(shù)學技巧。

4.如果你有n個節(jié)點的列表,對于一個有向無環(huán)圖來說,最多可以有幾條邊?
挑戰(zhàn): 這是著名的數(shù)學問題旅行商(traveling salesman problem)問題的一個派生。
這是一個不要求你找出聰明的數(shù)學算法而是要你拓展思路的數(shù)學問題。
你必須在節(jié)點間畫線,條件只有一個:無論你從哪里開始,永遠不要回到原點

5.在Java里面,finally、final和finalize的區(qū)別是什么?
挑戰(zhàn): 看看你知不知道這些術語。比方說,F(xiàn)inalize處理的是“垃圾回收”,而Finally則是指向一個特定的錯誤。

6.從一大塊文本中去掉重復的行
挑戰(zhàn): 一個基本問題,看你是不是能估算出問題是否可以在有限的時間內解決。
這樣的問題通常可以采取暴力攻擊手段,但卻有可能永遠都無法解決。(北京北大青鳥學校

7.給你一串字符,要你找出包含有給定字符集的最小窗口
挑戰(zhàn): 此類問題有許多解決方式,這完全取決于你選擇的算法是什么。
Google要找的是能選出更快算法的工程師。(北京北大青鳥學校

北大青鳥網上報名
北大青鳥招生簡章