Google New Grad 的 OA 在八月底才開,比其他大廠晚不少。題型延續以往風格——邏輯清晰的演算法題,核心在「找規律 → 轉化問題」。整理兩道做過的真題,思路很有代表性。
一、Google NG OA 概覽
| 維度 | 詳情 |
|---|---|
| 平台 | 部分批次 Codility,部分 HackerRank |
| 時長 | 約 75 分鐘 |
| 題量 | 2 道演算法題(陣列 / 前綴後綴 / 數學思維) |
| 難度 | 整體中等,題不長,但要抓核心思路 |
| 考點 | 陣列 + 數學推導,前綴最大 / 後綴最小套路 |
核心提醒:題目看著簡單,關鍵在快速發現數學規律或前綴後綴關係,O(n) 或 O(n log n) 才能過,暴力會 TLE。
二、題 1:翻轉一個元素後最小化絕對和
給一個整數陣列,最多翻轉一個元素(乘以 -1)。求翻轉後陣列和的最小可能絕對值。
例:[2, -3, 5] → 輸出 0。原和 = 4。翻 5 → 和 = -1,abs = 1;翻 2 → 和 = 0。最優結果 0。
def minAbsSum(arr):
s = sum(arr)
best = abs(s) # 不翻轉的基準
for x in arr:
# 翻轉 x 等價於 和 變化 -2*x
best = min(best, abs(s - 2 * x))
return best
思路轉化:把「乘以 -1」轉成「和變化 -2*x」。遍歷每個元素取 min(abs(s - 2*x)),再和 abs(s) 比較。複雜度:時間 O(n),空間 O(1)。
三、題 2:統計有序拼接的分割方式
給一個陣列,分成兩個非空部分 left 和 right,各自排序後拼接。求有多少種分割方式使最終拼接陣列整體有序。
例:[2, 1, 3, 5] → 輸出 2。在 index 2 分([2,1]|[3,5])→ [1,2,3,5] 有序 ✅;在 index 3 分([2,1,3]|[5])→ [1,2,3,5] 有序 ✅。
def countSortedSplits(arr):
n = len(arr)
# prefix_max[i]:前 i+1 個元素的最大值
prefix_max = [0] * n
prefix_max[0] = arr[0]
for i in range(1, n):
prefix_max[i] = max(prefix_max[i - 1], arr[i])
# suffix_min[i]:從 i 到末尾的最小值
suffix_min = [0] * n
suffix_min[n - 1] = arr[n - 1]
for i in range(n - 2, -1, -1):
suffix_min[i] = min(suffix_min[i + 1], arr[i])
# 在 i 和 i+1 之間切,只要 左段最大 <= 右段最小
count = 0
for i in range(n - 1):
if prefix_max[i] <= suffix_min[i + 1]:
count += 1
return count
思路轉化:排序後拼接是否有序,等價於 左段最大值 <= 右段最小值。預處理 prefix_max 和 suffix_min,遍歷每個切點判斷。複雜度:時間 O(n),空間 O(n)。
這題表面是「模擬排序」,本質是前綴/後綴資訊的經典套路。
四、找規律解題心法
| 步驟 | 做法 |
|---|---|
| 1. 讀題別急著寫 | 先想「這題在考什麼數學性質」 |
| 2. 轉化操作 | 如「乘 -1」→「和變 -2x」,把操作變成可計算量 |
| 3. 找前綴/後綴 | 涉及「左右兩段」「分割點」多半用 prefix/suffix |
| 4. 驗複雜度 | 75 分鐘兩題,暴力 O(n²) 大機率 TLE,目標 O(n) |
FAQ
Q1:Google NG OA 在哪個平台?
部分批次用 Codility,部分用 HackerRank,按邀請郵件為準。兩者環境略有差異,提前熟悉編輯器和提交方式能省時間。
Q2:題目看著簡單為什麼還掛?
因為暴力會 TLE。Google NG OA 表面簡單,但要求 O(n) / O(n log n)。掛的人多半是沒找到數學規律或前綴後綴轉化,硬寫雙重迴圈超時。
Q3:前綴最大 / 後綴最小套路常考嗎?
很常考。凡是涉及「分割陣列」「左右兩段比較」的題,多半能用 prefix_max / suffix_min 預處理 O(n) 解決。這是 Google NG OA 的高頻套路,務必練熟。
Q4:75 分鐘想不出思路怎麼辦?
最耗時的就是卡在「找規律」這一步。我們提供 OA 輔助:題型預測 + 限時陪練 + 卡殼時即時點撥轉化思路,幫你避免在一道題上耗光時間。
正在準備 Google NG OA?
Google NG OA 考的是找規律和問題轉化,不是死刷題。如果你想要這兩道真題的限時陪練、前綴後綴套路專項,或需要 OA 輔助 的即時對接,歡迎聯繫交流,發崗位 JD 先做題型預測,再排練習計劃。
立即新增微信 Coding0201,獲取 Google NG OA 真題與陪練。
聯絡方式
- 微信:Coding0201
- Email:[email protected]
- Telegram:@OAVOProxy