← 返回部落格列表 Google NG Online Assessment 覆盤:前綴後綴兩道真題 + 找規律解題心法
Google

Google NG Online Assessment 覆盤:前綴後綴兩道真題 + 找規律解題心法

2026-06-04

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_maxsuffix_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 真題與陪練

聯絡方式