Codility 測驗:你的分數到底在衡量什麼

· 8 分鐘閱讀

很多人在 Codility 測驗裡以為自己過了,結果其實沒過。題目描述裡的範例都輸出正確答案,編輯器顯示 OK,也順利送出——報告卻只有 40%。原因很單純,值得在考試前先知道:你看到的範例不列入計分。

分數實際由哪些部分組成

每道題會在兩個獨立面向上計分,報告也會分開顯示。

  • Correctness — 隱藏測資中,你的輸出和預期相符的比例。每道題至少會跑六組評分測資,題目得分就是通過測資的百分比。題目描述中的範例只是示範,不列入評分。
  • Performance — 輸入規模變大時,解法是否還能符合時間和記憶體限制。只適用於有計算擴展性的題目,就算答案全對,這個面向也會另外計分。

大家最常忽略的就是第二項。在一道目標是 O(n log n) 的題目裡用了正確的 O(n²) 迴圈,所有跑得完的測資都會答對,但會因為大型測資逾時而丟掉大部分 Performance 分數。

把限制條件當成複雜度預算

限制條件那一塊不是裝飾,而是題目在告訴你可以接受的時間複雜度,這是整個頁面上最有價值的資訊。

  • N 達到 100,000 以上 — 任何平方級演算法都會逾時。這時需要排序、hash map、two pointers 或 prefix sum 這類線性或對數級的做法。
  • N 只有幾千 — O(n²) 通常就夠了,硬要追求更巧妙的寫法,反而會浪費你在其他題目上需要的時間。
  • 數值可達 20 億 — 題目在暗示 32 位元累加器會溢位。在需要注意整數寬度的語言裡,這一點一定要處理。

動手寫程式前,先決定目標複雜度。機器評分的測驗裡,沒有人會因為你直覺很好、卻沒寫出來而幫你加分。

分數都丟在哪裡

大部分的失分來自三種狀況,而且都跟演算法能力無關。

  • 沒人測過的邊界情況。空輸入、只有一個元素、所有元素都相同、允許的最小值和最大值。這些正是隱藏測資,因為它們最容易出題。
  • 邊界上的 off-by-one。包含與不包含端點的區間,比任何資料結構都更容易扣掉 Codility 分數。
  • 第三題時間不夠。計時器是整場測驗共用,不是每題分開計時。每題都留下一個能跑的暴力解的人,通常比只寫出一題完美解、另外兩題空白的人分數更高。

部分分數是真的,一定要拿

因為分數是依通過測資的比例計算,老實的暴力解比空白的編輯器有價值得多。在時間壓力下,拿最高分的順序幾乎都一樣:先寫出最直接的解法並送出,再來最佳化、再送出一次。先拿到分數,再往上加。

如果你知道自己的解法太慢、又改不了,就直接留著。大型測資逾時的提交,一樣會拿到所有通過的小型和中型測資的分數。

最後十分鐘

不要再寫新的程式碼。每道題分別用空輸入、單一元素,以及限制條件允許的最大值各跑一次。這樣檢查一輪拿到的分數,比在難題上第四次重寫還多,而且只要三分鐘。

還有一件事最好事先知道,而不是事後才發現:平台會記錄分頁裡的所有操作,包括切換焦點和貼上的程式碼片段,雇主會在你的分數旁邊看到這些摘要。請把測驗安排成一次坐下來完成,而不是從其他視窗拼湊出來。

Codility 官方說明中心確認的幾點

  • 時長。時間上限由雇主設定。Codility 表示測驗通常在半小時到兩小時之間,實際時長會顯示在邀請信連結打開的測驗開始頁。
  • 只有一個計時器。畫面上的時間是整場測驗的,不是單一題目的,開始後就不能暫停。
  • 速度不計分。做得快或慢不影響自動計分,只看測資。
  • 時間用完時,編輯器裡的程式碼會自動送出,但必須能編譯才會計分。讓每道題都保持可以編譯的狀態,而不只是你正在寫的那一題。
  • 按 Run 之後顯示的「OK」只代表程式碼能編譯,而且在範例測資上結果正確。
  • 雇主看得到什麼。每道題一條時間軸,標出焦點在視窗內外的時間,以及貼進編輯器的文字;另外有 Similarity Check,會把你的解法和超過 1200 萬份其他提交、網路上外流的題解以及 AI 產生的解法比對。監考(分頁切換標記、鏡頭拍照)是雇主依測驗另外開啟的選項。Codility 自己也說明,貼上本身並不等於作弊。

資料來源

上面的事實內容已在 2026 年 10 月 14 日對照這些官方頁面查證過。平台規則會改,考試前請再確認一次。

FAQ

題目裡的範例會列入我的 Codility 分數嗎?

不會。題目裡的範例只是說明用。你的分數是通過隱藏評分測資的百分比,所以就算你的程式碼能處理所有給出的範例,分數還是可能很低。

Codility 幾分算及格?

沒有統一的及格線。Codility 預設不設定 Passing Score,由雇主替每場測驗自己決定;報告可以依總分替應徵者排序,總分合併了正確性以及(有量測時的)效能。

可以回到前面的題目嗎?

可以。計時器是整場測驗共用,不是每題分開,時間用完之前你都能在各題之間切換。這也是為什麼先送出暴力解、再回頭最佳化這麼有效。

Codility 會偵測切換分頁或貼上程式碼嗎?

報告裡每道題都有一條時間軸,標出離開焦點的時間和貼進編輯器的文字;Similarity Check 會把解法和其他提交、網路上外流的題解和 AI 產生的解法比對。鏡頭拍照和分頁切換標記,只有雇主開啟監考時才會出現。系統不會因此自動判你不通過——Codility 自己也說貼上不等於作弊——但雇主會在你的分數旁邊看到這一切。

Codility 測驗要多久?

時長由雇主設定;Codility 表示測驗通常在半小時到兩小時之間。計時器不能暫停,花多少時間不影響自動計分,時間一到編輯器裡的程式碼會自動送出——但必須能編譯才會計分。

應用程式在這裡怎麼幫忙

相關文章

接著讀