← 返回部落格列表 CodeSignal GCA 評分邏輯:速度、簡潔與穩定
CodeSignal

CodeSignal GCA 評分邏輯:速度、簡潔與穩定

2026-07-16

在北美找 SDE,CodeSignal 的 GCA(General Coding Assessment)幾乎是繞不開的一關。它不是普通的刷題網站,而是一套資料驅動的標準化能力測評——Databricks、Uber、Robinhood、Asana、Brex 等公司都直接用 GCA 分數決定要不要給你下一輪。很多人考完一臉疑惑:「我明明所有測資都過了,為什麼分數比同學低?」

答案就在評分模型裡。GCA 滿分約 850,但它遠不止看通過率。這篇文章專門講清楚 GCA 的評分邏輯:正確率、速度、程式碼簡潔度、穩定性這四個維度是怎麼合成最終分數的,以及針對每個維度該怎麼系統性地提高。姊妹篇《CodeSignal GCA 第一輪篩選生存指南》講的是整體流程與門檻,本文則是評分模型的深度拆解

CodeSignal GCA 速查表

維度 詳情
平台 CodeSignal(GCA 通用測評 / 公司專屬 OA)
常見用家 Databricks、Uber、Robinhood、Asana、Brex 等
滿分 約 850 分
題量 / 時長 4 題,約 70 分鐘,難度遞增
評分維度 正確率 + 速度 + 簡潔度 + 穩定性
語言 Python / Java / JS / Go 等多種
重做 通常一次性,成績可複用給多家公司

一、為什麼「全部通過」分數還會不同

先破除一個最常見的誤解:GCA 不是「通過測資數 ÷ 總測資數 × 850」。如果只是這樣,那所有 AC 的人分數就該一樣。真實情況是,GCA 綜合評估你解決問題的整個過程,主要看四個維度:

所以兩個都「全部測資通過」的人,可能一個在第 20 分鐘就交出乾淨的 O(n) 解,另一個磨到第 65 分鐘才交出一個能過但很囉嗦的解——前者速度分和簡潔度分明顯更高,總分自然拉開。此外 Q4 存在部分給分(partial credit),即使沒全 AC,過的測資也計分。

二、評分維度拆解表

維度 對分數的影響 怎麼提高
正確率 基礎分,決定分數下限 主動列舉邊界(空輸入、單元素、重複值、越界);提交前用極端輸入自測
速度 同樣正確下,越早提交越高分 限時模擬練手速;高頻題型形成肌肉記憶,讀題即知套路
簡潔度 冗餘/繞路實作拉低上限 用慣用寫法(Counter、雙指標、切片);一個函式只做一件事,避免巢狀過深
穩定性 極端/效能測資決定能否拿滿 先想清最優複雜度再動手;避免 list.pop(0) 之類 O(n) 陷阱,用 deque

關鍵認知:這四個維度不是相互獨立的加分項,而是互相咬合的。寫得乾淨往往也寫得快,想清複雜度往往穩定性也好。所以備考的核心不是「多刷題」,而是把常見題型練到又快又乾淨又穩

三、GCA 與公司專屬 OA 的區別

CodeSignal 上有兩類測評,評分側重和題型都不同,備考前要分清:

對比項 GCA(通用測評) 公司專屬 OA(Custom)
代表公司 Databricks、Uber、Robinhood、Asana、Brex Ramp、Two Sigma、Opendoor、Cruise、Square
題型 標準演算法:陣列、字串、圖、DP 複雜 JSON 解析、大量字串處理、業務建模、DP
分數複用 一份成績可投多家 通常只對該公司有效
難度曲線 Q1→Q4 穩定遞增 單題體量更大,題面更長
備考重點 高頻套路 + 手速 + 穩定性 讀題建模能力 + 邊界覆蓋

簡單說:GCA 比的是「標準題做得又快又穩」,公司專屬 OA 比的是「複雜題面能不能準確建模」。兩者都吃「簡潔 + 穩定」,但公司專屬 OA 更考驗讀長題和拆解需求的能力。

四、高頻題型

無論 GCA 還是公司專屬 OA,下面這幾類反覆出現,值得練到形成肌肉記憶:

題型 典型考點 推薦 LeetCode
滑動視窗 陣列/字串區間統計 3, 76, 209
字串分割/處理 split、解析、頻率統計 49, 819, 271
BFS/DFS、連通分量 200, 133, 994
排列/模擬 狀態推進、規則執行 46, 289, 54
動態規劃 計數、最優子結構 70, 322, 300

五、一道代表題:乾淨又快的滑動視窗解法

題目背景

給一個整數陣列 nums 和視窗大小 k,回傳每個長度為 k 的連續視窗中不同元素的個數。這是 GCA 裡滑動視窗 + 雜湊計數的典型組合,也最能體現「簡潔」與「穩定」如何影響分數。

思路

  1. 用一個雜湊表維護目前視窗裡每個值的出現次數,len(count) 就是不同元素個數。
  2. 視窗右移時:新元素計數 +1,滑出的舊元素計數 -1,減到 0 就從表裡刪除。
  3. 全程 O(n),不重複掃描——這就是拿到速度分和穩定性分的關鍵。

Python 解法

from collections import defaultdict
from typing import List


def distinct_in_windows(nums: List[int], k: int) -> List[int]:
    """回傳每個長度為 k 的視窗中不同元素的個數。"""
    # 邊界:空陣列或 k 非法時直接回傳空,保證穩定性
    if k <= 0 or k > len(nums):
        return []

    count = defaultdict(int)
    result = []

    for i, x in enumerate(nums):
        count[x] += 1                     # 新元素進入視窗

        if i >= k:                        # 視窗已滿,移出最左元素
            left = nums[i - k]
            count[left] -= 1
            if count[left] == 0:          # 計數歸零就刪除,len 才準確
                del count[left]

        if i >= k - 1:                    # 視窗湊滿 k 個才開始記錄
            result.append(len(count))

    return result


if __name__ == "__main__":
    print(distinct_in_windows([1, 2, 1, 3, 4, 2, 3], 3))  # [2, 3, 3, 3, 3]
    print(distinct_in_windows([1, 1, 1], 2))              # [1, 1]
    print(distinct_in_windows([], 3))                     # []

時間複雜度:O(n),每個元素進出視窗各一次 空間複雜度:O(k)

為什麼這個版本分數更高:對比一下「每個視窗都重新 len(set(nums[i:i+k]))」的暴力寫法——那樣是 O(n·k),範例能過,但效能測資會逾時,穩定性分直接丟掉。而滑動視窗版本不僅 O(n) 穩過大資料,程式碼也更短、意圖更清晰(簡潔度分),寫熟了 5 分鐘就能交(速度分)。同一道題,同樣「全 AC」,這三點差異就足以拉開總分。

六、備考策略

把評分模型翻譯成可執行的訓練動作:

目標維度 訓練方式
正確率 每道題先手寫 3-4 個邊界測資,再寫主邏輯,提前把隱藏測資想到
速度 每週 2 次 70 分鐘 4 題限時模擬,讀題即認套路
簡潔度 刷題後回看,把能用 Counter/雙指標/切片簡化的地方重寫一遍
穩定性 每道題都問一句「最壞輸入是什麼」,先定複雜度再動手

我們的 OA輔助 / OA代面 服務正是圍繞這套評分模型設計的端到端陪練:評分體系講解(把 850 分怎麼算講透)、題型預測(按公司給當週高頻題型)、完整解法 + 複雜度分析(每題給出又快又乾淨的最優寫法)、以及 mock 與即時協作陪練——幫你在正式考試裡穩定發揮、把每個維度的分都拿滿。

FAQ

Q1:GCA 滿分多少? 滿分約 850。它不是簡單的「通過率 × 850」,而是綜合正確率、速度、程式碼簡潔度和穩定性四個維度合成的分數。約 70 分鐘做 4 題,難度遞增。

Q2:全部測資都通過了,為什麼分數還是不一樣? 因為 GCA 還看你多快提交程式碼是否精煉解法在極端和效能測資下是否穩定。兩個人都 AC,但一個 20 分鐘交出乾淨 O(n) 解、另一個 65 分鐘交出囉嗦解,速度分和簡潔度分會明顯拉開總分。

Q3:怎麼提高 GCA 分數? 四個方向同時練:主動覆蓋邊界測資提正確率、限時模擬練手速、用慣用寫法保持簡潔、先定複雜度避免逾時保穩定。核心是把高頻題型練到又快又乾淨又穩,而不是單純堆刷題量。

Q4:GCA 和公司專屬 OA 有什麼區別? GCA 是通用標準測評,題型偏標準演算法,一份成績可投多家公司;公司專屬 OA(如 Ramp、Two Sigma、Cruise)題面更長、更偏複雜 JSON 解析和業務建模,通常只對該公司有效。兩者都重視簡潔和穩定。

Q5:Q4 沒做完還有分嗎? 有。Q4 支援部分給分(partial credit),通過的每個測資都計分。所以策略是前三題穩拿滿分,第四題即使做不全,也要盡量多 AC 測資、覆蓋邊界,把能拿的分都拿到。


正在準備 CodeSignal GCA?

如果你擔心手速不夠、Q4 AC 不全,或者搞不清自己「全過卻分低」卡在哪個維度,可以聊聊完整的 OA輔助 / OA代面 方案——從評分體系講解到題型預測、限時 mock 與即時陪練,幫你帶著準備走進考場、穩定拿分。

立即加入微信 Coding0201獲取真題與備戰計劃

聯絡方式