Google SDE 面試經驗分享,包括了 Google 的 OA 和兩輪面試流程,一起來看一下吧。
Google 面试过程
在線測試(OA)
第一輪是一個在線測試。 有五組問題,每組有兩個題目,你會隨機抽到一組。 我們大部分時間都花在了第二題上,第一題是 leetcode easy 題,但大致知道它是一個關於圖的題目。
題目如下:
給定一個長度為 n 的整數數位 A,定義一個好三元组為滿足以下條件的三個索引集合 (i,j,k):
- 索引条件:0≤i<j<k<n
- 陣列值條件:
- 對於所有 i<q<j,满足:
- 满足: A[i]>A[q]且A[j]>A[q]
- 对于所有 j<p<k,满足: A[k]>A[p]
- 好三元組的距離:
- 定義為: 距離=k−i+1
請找出陣列 A 中好三元組的最大距离。
邏輯: 使用單調棧預處理每個索引的位置,即向左和向右能擴展多遠。 然後遍歷陣列,假設當前索引為三元組的第一個元素,利用預處理數據可以快速找到第二和第三個索引,從而在 O(1)時間內計算三元組的距離。
结果:最終通過了所有測試用例。 成功入圍下一輪面試!
Google第一輪面試(VO)
面試官是一位新加入 Google 的員工,非常友善。 我們用了 5 分鐘進行自我介紹,接著她給出了以下問題:
问题 1: 一个字符串被称为分组字符串,如果其中的所有字元都連續出現。 例如,AAABBBBBCDEE 是分組字串,而 AAABBBACCED 不是。
給定一個分组字符串s 和一個整數 k,你需要將字串分成大小不超過 kkk 的組,例如:前 k 個字元為第 1 組,下 k 個字元為第 2 組,依此類推。 注意最後一組可能少於 k 個字元。
一个字符被称为分布字符,如果它出現在多個組中。 例如,對於字串 AABBCCDEE 和 k=2k,分组为 AA, BB, CC, DE, E。字符 E 出現在多個組中,因此是分散式字元,而其餘字元 A, B, C, D 则不是。
需求:输出字符串中未分布的字符数量。
思路: 維護兩個哈希表:一個全域哈希表記錄之前組中出現的字元,另一個當前組的哈希表記錄當前組的字元。 遍歷組,檢查每個字元是否在多個組中出現。
問題 2: 給定一個二叉樹,每個節點的值為 0 或 1。 1 的島嶼被定義為由 1 組成的連續區域(由 0 分隔或邊界限制的 1)。 輸入二叉樹的根節點,返回島嶼的數量。
思路: 遞歸遍曆樹,遇到值為 0 的節點時將上下游的島嶼分割開,否則合併島嶼。
Google 第二輪面試(VO)
這一輪難度稍高,但問題邏輯清晰。 包括:
- 求最長全為 0 的子陣列長度。
- 求二進位矩陣中最大 1 的連通區域面積。
- 求二進位矩陣中全為 0 的最大矩形面積。
最終結果: 經過幾輪面試后,學生成功獲得了 Google 的實習機會!
參考資料
我們提供面試輔助、VO 助攻、VO 輔助、代面試等面試支持服務。 對於 OA 輔助,我們將確保您獲得滿分,對於面試支持,我們有把握説明您拿到大廠 Offer,如果你需要 Google 的面試支援服務,請與我們聯繫。