BlackRock 作為全球最大的資產管理公司,技術職(尤其是 Aladdin 平台相關團隊)的 OA 既考演算法基礎,也考工程與資料能力。它的 Coding Assessment 通常透過 HackerRank 進行,題型組合相對固定。本文把這套 OA 拆成四大類,逐一給出真題角度的解法。
BlackRock OA 概覽
| 維度 | 詳情 |
|---|---|
| 平台 | HackerRank(部分職位用 CodeSignal) |
| 時長 | 60–90 分鐘 |
| 題量 | 3–5 題(編碼 + SQL 混合) |
| 難度 | LeetCode Easy–Medium 為主 |
| 考察重點 | 陣列/字串、圖論、DP、SQL 查詢 |
題型一:陣列與字串處理
最基礎的一類,常見為「子陣列求和」「字元頻次統計」。一道典型題:給定陣列,求和恰好等於 target 的連續子陣列個數。
Python 解法(前綴和 + 雜湊)
def subarray_sum_count(nums, target):
count = 0
prefix = 0
seen = {0: 1} # 前綴和 -> 出現次數
for x in nums:
prefix += x
count += seen.get(prefix - target, 0)
seen[prefix] = seen.get(prefix, 0) + 1
return count
時間複雜度:O(n) 空間複雜度:O(n)
題型二:圖論 / 最短路徑
資產網路、依賴關係常被包裝成圖題。典型題:給定 N 個節點和帶權邊,求從源點到所有節點的最短距離。
Python 解法(Dijkstra + 堆)
import heapq
from collections import defaultdict
def shortest_paths(n, edges, src):
graph = defaultdict(list)
for u, v, w in edges:
graph[u].append((v, w))
dist = [float('inf')] * n
dist[src] = 0
pq = [(0, src)]
while pq:
d, u = heapq.heappop(pq)
if d > dist[u]:
continue
for v, w in graph[u]:
if d + w < dist[v]:
dist[v] = d + w
heapq.heappush(pq, (dist[v], v))
return dist
時間複雜度:O((V + E) log V)
題型三:動態規劃
BlackRock 的 DP 題偏「投資/收益」場景,例如「最大不相鄰子序列和」(隱喻不能連續兩期都投同一資產)。
Python 解法
def max_non_adjacent_sum(nums):
include, exclude = 0, 0 # include: 選當前; exclude: 不選當前
for x in nums:
include, exclude = exclude + x, max(include, exclude)
return max(include, exclude)
時間複雜度:O(n) 空間複雜度:O(1)
題型四:SQL 查詢
金融資料職幾乎必考。典型題:給定 transactions 表,找出每個 client 當月交易額最高的那一筆。
SQL 解法(視窗函數)
SELECT client_id, txn_id, amount, txn_date
FROM (
SELECT client_id, txn_id, amount, txn_date,
ROW_NUMBER() OVER (
PARTITION BY client_id
ORDER BY amount DESC
) AS rn
FROM transactions
WHERE txn_date >= DATE_TRUNC('month', CURRENT_DATE)
) t
WHERE rn = 1;
視窗函數 ROW_NUMBER() 是這類「分組取 Top-1」題的標準武器,比自連接更清晰高效。
備考策略
| 題型 | 推薦 LeetCode | 重點 |
|---|---|---|
| 陣列/字串 | 1, 560, 76 | 前綴和、雙指針、滑動視窗 |
| 圖論 | 743, 207, 1631 | Dijkstra、拓撲排序 |
| DP | 198, 322, 300 | 狀態定義、滾動陣列 |
| SQL | 視窗函數、聚合、JOIN | ROW_NUMBER、GROUP BY、HAVING |
BlackRock OA 的整體難度不極端,但題量大、時間緊,SQL 與編碼混考很容易顧此失彼。建議按題型輪轉刷題,把 SQL 的視窗函數練到肌肉記憶。
FAQ
BlackRock OA 難度如何?和 LeetCode 比是什麼水平? 整體在 Easy 到 Medium 之間,單題不難,但題量大、時間緊,加上 SQL 混考,對節奏控制要求高。
BlackRock OA 用什麼平台?時長多久? 多數職位走 HackerRank,部分用 CodeSignal,時長 60–90 分鐘,含 3–5 題。
BlackRock OA 一定會考 SQL 嗎? 資料/金融分析方向幾乎必考;純後端/平台職以編碼題為主,但掌握視窗函數有備無患。
OA 之後的流程是什麼? 通過後通常進入技術電面與 superday(多輪 VO),含編碼、系統/專案討論與 Behavioral,整體週期約 3–5 週。
OA 時間不夠、SQL 不熟怎麼辦? 我們提供 BlackRock OA輔助 與 OA代面 支援:針對四大題型做專項拆解與限時演練,幫你在緊張的時間窗內穩定拿分。
正在準備 BlackRock 的 OA?
BlackRock OA 的難點不在單題,而在「題量 + SQL 混考」的節奏。我們的導師可提供四類題型的高頻題拆解、SQL 視窗函數專項與限時模擬。需要系統規劃,歡迎交流,立刻聯繫微信 Coding0201,獲取真題與備考資料。
聯繫方式
Email: [email protected] Telegram: @OAVOProxy