2012/2/2

Google工程師面試必會的7道程式考題

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)

沒有留言:

張貼留言