每位Google工程師面試必會的15道程式考題(上)
你一定聽過一大堆進Google必考的瘋狂面試問題,但除此之外,每位工程師還須加考專業的技術問題,證明你的寫程式能力。Glassdoor是一家供求職者評價面試經驗的網站,蒐集了許多有趣的Google面試問題,現在就來看看進Google必考的刁鑽問題吧!
1. 撰寫一個整數演算法
挑戰:這是一個比較隨意的問題,設計來讓工程師定義參數(parameter)。
如果是Assembly組合語言,則必須建立基本的算式,如果是其他語言就很容易,大多數語言都有支援算式,只要把數字帶入即可。
2. 將兩個排序好的Linked List合併
挑戰:這是一般Google面試問題的基本設計,讓你找出有效率的方式解決問題。
如果你要合併兩個「linked list」,遇到的問題是兩個list間的順序是衝突的,你必須找到一個好演算法快速重新排序。
3. 給一組區間(一定秒數),讓你找出哪組區間重疊了
挑戰:Google同時會要求你解決一組數學問題,用來挑戰工程師很有效率的思考問題,不只是考撰寫程式。
4. 如果有一組N node,該有向無環圖(directed acyclic graph)的邊最大值為何?
挑戰:這是知名數學題目「旅行者問題」的變形
你必須畫出每個node之間的線,但是不能有一個明顯的路徑是回到出發的原點。
5. 在Java語言中,finally、final和finalize的有何不同?
挑戰:上述詞彙都有特定的意義,無法混淆。.
Google考你懂不懂Java。舉例來說,Finalize是處理「垃圾回收」機制,而Finally是只特定錯誤訊息。
6. 移除一組text文本中的重複句子
挑戰:這個問題主要是考你是否能夠估算該試題能在一定時間內解決。
雖然你可以暴力法試著窮盡所有可能,但是也有可能永遠無法解決。
7. 給予一組字串(String),找出可以包含給定字母組合的最小視窗(minimum
window)
挑戰:有很多種解法,取決於你採用的演算法
Google要的是能夠找出最快演算法的工程師。
來源: Business Insider