想進做招聘平台的演算法團隊? 別小看 ZipRecruiter。 作為典型的數據驅動型公司,ZipRecruiter 在數據科學(DS)和機器學習(ML)崗位的選拔流程上非常“工程化”:不僅刷題考得精,還要動手寫代碼調試腳本、設計系統、甚至查 debug 錯誤。 Programhelp 最近輔導了幾位同學成功拿下 ZipRecruiteroffer,下面這篇就來幫你還原一次完整的 DS/ML 面試全流程,供你參考準備!
一、面試流程總覽(DS/ML 崗)
| 面試階段 | 說明 |
|---|---|
| 電面(電話 or Zoom) | 自我介紹 + 專案深挖 + 即興小題 / 後續發 OA |
| OA 在線筆試 | CodeSignal 平臺,4 道程式設計題,時間緊,題型包含演算法、資訊流類比、矩陣處理等 |
| Onsite 第 1 輪 | 演演算法題(如 Min Stack)現場手寫 + 跑通測試,重視寫代碼的完整度和溝通方式 |
| Onsite 第 2 輪 | Web 應用 Debug,涉及 Perl 腳本和 HTML,考系統排查思路和代碼讀懂能力 |
| Onsite 第 3 輪 | Database Schema Design:設計 TinyURL 系統 + 使用者投票功能擴展 |
| 現場 第 4 輪 | 手寫實現 Merge Sort 等排序演算法,重點在於代碼邏輯完整、能跑出結果 |
整體上,這是一套「全維度選拔方案」:不僅考你刷題能力,更看你是否能寫、查、改、搭建系統,適合那些有實戰背景或專案經驗的候選人。
二、程式設計題真題拆解(OA+Onsite 綜合)
第一輪
題目 1:給一組正整數,第一個數為加,然後輪換加減數位數,返回總和。 比如[1,2,3,4,5],ans = 1 - 2 + 3 - 4 + 5。
題目 2:給一組長度為n的整數[number[0], ..., number[n - 1]],返回number of shifts,使得數位變成[n, n - 1, n - 2, ..., 1]。t-shift的意思是把陣列變成[number[n - t], number[n - t + 1], ..., number[n - 1], number[0], ..., number[n - t - 1]]。
題目 3:給一個矩陣,矩陣的element是整數或者"+","-"的string,返回valid expression的最大和,只能是一行的和或者一列的和。 像"9"+"+""0"這種屬於invalid 。
題目 4:給一組正整數,比較陣列裡的數,返回只有一個digit不同的pair count。
第二輪(Codesignal 平臺)
題目 1:給一個string: c1c2c3c4...,要求前後兩個char互換變成c2c1c4c3...。
題目 2:判斷能否通過cyclic shift(迴圈移位)後變成一個sorted(有序)的序列。
題目 3:給一個正方形矩陣與一個陣列,陣列包含 0、1、2 三個數位:0 代表對矩陣進行順時針rotate(旋轉); 1 代表對矩陣沿主對角線reflex(翻轉); 2 代表對矩陣沿副對角線reflex(翻轉) 。 可參考類似力扣題目思路,rotate可分解為transpose(轉置)加flip(翻轉)操作 。
題目 4:處理一系列矩陣操作,格式如[0, x0, y0], [0, x1, y1], [1, x2, y2]:陣列第一個元素為 0 時,新添加一個矩形; 陣列第一個元素為 1 時,判斷x和y(可旋轉矩形)能否適配到已添加的所有矩形中(比較長寬比等 )。
示例:[0, x0, y0], [0, x1, y1], [1, x2, y2]中,前兩個是添加矩形,第三個是判斷適配性 。
第三輪(ZipRecruiter DS/MLE 崗位 OA)
題目 1:給兩個字串s、t,检查t中每個字元是否是s對應位置字元的 「下一個」 (s中字元為'z'时,t對應為'a' )。 若全對應返回True,否則False。 實現時用chr(ord(i)+1)需注意'z'转'{'問題,要提前處理 。
題目 2:操作矩陣,根據參數i執行不同變換:i == 0:將矩陣順時針旋轉 90 度;i == 1:沿主對角線翻轉矩陣;i == 2:沿副對角線翻轉矩陣 。
題目 3:找當前時間后最早一班公交車的到達時間,並計算時間差。 輸入為時間清單schedule和當前時間time,輸出為時間差字串。 例如:schedule = ["10:00","11:30","13:00","15:30"], time = "13:25",結果"02:05";schedule = ["10:00","11:30","13:00","15:30"], time = "13:00",結果"00:00" 。
難點在於時間差的計算和字串格式處理 。
題目 4:涉及xy軸碰撞相關邏輯
系統設計 & Debug 環節(hard)
Web Debug
問題:調試一個包含 HTML 頁面和 Perl 腳本的小系統,輸出頁面數據不顯示。
面試重點:
看你是否能讀懂別人寫的代碼(Perl + JS)
理解 GET / POST 參數傳遞機制
不要求精通 Perl,但要清楚調試流程
Database Schema Design
設計 TinyURL 服務:
輸入長 URL,返回唯一短連結
後續支援用戶註冊/登錄、用戶歷史記錄
設計擴展功能:Upvote / Downvote 投票系統
面試官會追問:
URL 如何去重?
是否有併發寫入衝突? 如何避免?
使用者表和連結表的結構關係?
Programhelp 助你衝刺 DS / ML Offer|高效備考組合
Programhelp 是專注技術面試輔助的專業團隊,已成功助攻學員斬獲 ZipRecruiter、Meta、Amazon、Databricks、Stripe 等大廠 Offer,針對 DS / ML 崗位我們提供:
高頻 OA 題庫訓練 + 解法精講
類比系統設計題 + 口頭表達訓練
專案故事梳理 + STAR 框架答題
Debug 實操訓練 + Perl/HTML 環境類比
OA 在線即時助攻服務
VO 輔助,代面試、面試代面、SDE 代面
如果你也在準備 DS / ML 崗位 OA / 技術面試,歡迎私信我們,領取專屬題庫樣本 + 1v1 輔導計劃!