這次要分享的是 Google 26 Intern OA 的經歷,整體過程非常順利,兩道題都一次 AC,結束后還剩不少時間做檢查。 Google 的 OA 題目算是比較經典的類型,難度不算變態,但實現上需要細心。
最關鍵的一點是:這種 OA 題雖然在題庫里能刷到類似的,但真正實戰時,很多同學會因為緊張或者細節處理不到位導致 AC 不全。 所以這次能秒過,不光是自己平時積累的演算法功底,也得益於我們 Programhelp 的遠端無痕連線輔助——在卡點時能快速理清思路,保證測試用例 100% 全過。
下面就把真題分享給大家。
第一題:最長和諧子序列
Problem:
Given an integer array, find the length of the longest harmonious subsequence where the maximum value and the minimum value differ exactly by 1.
Example:
Input: [1,3,2,2,5,2,3,7]
Output: 5
Explanation: The subsequence [3,2,2,2,3] is harmonious.
思路解析:
這題的關鍵在於“最大值和最小值只差 1”,換句話說,整個子序列只能由兩個相鄰的數字構成,比如 2 和 3。
- 第一步:用哈希表統計每個數字的出現次數。
- 第二步:遍曆哈希表,對於每個數
x,检查x+1是否存在,如果存在,就計算count[x] + count[x+1]。 - 第三步:在所有組合中取最大值作為答案。
實現時要注意邊界,比如當陣列只有相同元素時,結果應該是 0。 總體來說這是道哈希統計+遍歷的基礎題。
第二題:Permutation in String
Problem:
Given two strings s1 and s2, return true if s2 contains the permutation of s1.
Example:
Input: s1 = "ab", s2 = "eidbaooo"
Output: true
Explanation: "ba" is a permutation of "ab".
思路解析:
這是經典的滑動視窗問題:
- 先統計 s1 中各字元的頻率。
- 然後在 s2 上維護一個長度等於 s1 的滑動視窗,每次進入一個新字元、移出一個舊字元,同時更新頻率表。
- 每次更新后和 s1 的頻率表對比,如果一致,就返回 true。
- 如果整個掃描結束都沒有匹配,就返回 false。
細節在於視窗更新要寫得乾淨俐落,不然很容易出錯。 這個題在 OA 裡基本是送分題,但也最容易因為小 bug 丟分。
實戰體驗
這場 OA 給的時間挺充裕的。 我大概用了 20 分鐘寫完第一題,25 分鐘寫完第二題,接著花了 10 分鐘補充 test case,又預留了十多分鐘檢查代碼。
Google 的 OA 不會刻意卡你時間,而是看你能不能把基礎演算法思路實現得完整、bug free。 所以在我看來,細節和穩定心態比所謂的「高難度演算法」更重要。
Google 26 Intern OA 出題規律總結
結合這次和之前輔導的同學情況,Google OA 有幾個明顯規律:
- 考查基礎演算法範本:哈希表、滑動視窗、雙指標,是高頻出現的。
- 重視代碼細節:邊界條件、頻率統計、視窗更新等地方很容易失誤。
- 難度適中但要求穩定:不像 hedge fund 或 quant 面試那樣刁鑽,但絕對不允許粗心。
所以準備 Google OA 的最佳方式,就是提前熟悉這幾類題型,把範本練到寫得又快又準。
不慌不亂通過大廠 OA 的秘訣
很多同學刷題時思路沒問題,但一旦進入 OA 環境,容易出現:
- 思路沒完全展開,寫到一半發現方向錯了;
- 邊界情況沒考慮全,最後幾個 hidden case 沒過;
- 時間分配不均,第二題還沒 debug 完就超時了。
我們 Programhelp 的遠端無痕連線輔助,正好能解決這些痛點:
- 無痕操作:在考試環境中全程隱形輔助,確保安全。
- 100% 測試用例通過:如果沒通過,不收費。
- 即時語音提醒:關鍵節點卡住時,會點撥思路,避免浪費時間。
- 考前演練:針對 Google、Amazon、Meta 等公司常見題型,提前模擬實戰,真正考試就能輕鬆拿下。
這次 Google OA 我能順利秒過,也是因為有了這套保障,讓我在實戰中不慌不亂,代碼一次成型。 但如果你不想孤軍奮戰,想要一次過關的保障,那麼 Programhelp 的 OA 無痕連線輔助 會是你最穩妥的選擇。 畢竟,機會寶貴,能確保 100% 過關,才是真正的省心。