WeRide(文遠知行)是全球領先的 L4 級自動駕駛公司,總部位於廣州,在矽谷、北京等地設有研發中心。其 SDE 崗位 OA 題目融合了自動駕駛場景與經典演算法,考察候選人在實際工程問題中的建模與編碼能力。本文基於一畝三分地最新面經,系統梳理 WeRide OA 的核心考點。
WeRide OA 概覽
| 維度 | 詳情 |
|---|---|
| 平台 | HackerRank / 自研平台 |
| 時長 | 60-90 分鐘 |
| 題量 | 2-3 道程式題 |
| 難度 | Medium |
| 考察重點 | 圖演算法、貪心、模擬、DP |
題型一:圖像處理調度(Image Processing Scheduling)
題目描述
自動駕駛系統需要對攝影機採集的圖像進行多種濾鏡處理。每張圖像有指定的處理時間窗口 [start, end],每種濾鏡有不同的處理成本。需要設計一個調度策略,在滿足時間約束的前提下,最小化總處理成本。
返回最小成本對 (10^9 + 7) 取模的結果。
解題思路
這是一個區間調度 + 貪心/DP 問題:
- 將圖像按截止時間排序
- 對每張圖像,選擇成本最低的可用濾鏡
- 使用優先佇列維護當前可用的處理資源
Python 解法
import heapq
MOD = 10**9 + 7
def min_processing_cost(images, filters):
images.sort(key=lambda x: x[1])
total_cost = 0
for start, end, req in images:
valid_filters = []
for cost, proc_time in filters:
if proc_time <= end - start:
valid_filters.append(cost)
if valid_filters:
total_cost = (total_cost + min(valid_filters)) % MOD
else:
return -1
return total_cost
題型二:最短路徑規劃(Shortest Route Planning)
題目描述
給定一個城市路網圖,節點代表路口,邊代表道路(帶權重表示通行時間)。自動駕駛車輛需要從起點到終點,但部分道路會動態變化(如交通管制)。需要找到考慮動態變化後的最短路徑。
解題思路
這是 Dijkstra + 動態邊權 的變體:
import heapq
from collections import defaultdict
def shortest_path_dynamic(n, edges, changes, start, end):
graph = defaultdict(list)
for u, v, w in edges:
graph[u].append((v, w))
graph[v].append((u, w))
change_map = {}
for time, u, v, new_w in changes:
change_map[(min(u,v), max(u,v), time)] = new_w
dist = [float('inf')] * n
dist[start] = 0
pq = [(0, start)]
while pq:
d, u = heapq.heappop(pq)
if d > dist[u]:
continue
if u == end:
return d
for v, w in graph[u]:
edge_key = (min(u,v), max(u,v))
effective_w = w
for (eu, ev, t), nw in change_map.items():
if (eu, ev) == edge_key and t <= d:
effective_w = nw
new_dist = d + effective_w
if new_dist < dist[v]:
dist[v] = new_dist
heapq.heappush(pq, (new_dist, v))
return dist[end] if dist[end] != float('inf') else -1
時間複雜度:O((V + E) log V)
空間複雜度:O(V + E)
題型三:感測器資料融合
題目描述
自動駕駛車輛配備多個感測器(LiDAR、Camera、Radar),每個感測器以不同頻率產生資料幀。需要設計一個資料融合演算法,將時間戳最接近的多感測器資料幀配對,使得總時間偏差最小。
解題思路
def sensor_fusion(lidar_ts, camera_ts, radar_ts):
lidar_ts.sort()
camera_ts.sort()
radar_ts.sort()
total_diff = 0
i, j, k = 0, 0, 0
while i < len(lidar_ts) and j < len(camera_ts) and k < len(radar_ts):
max_diff = max(lidar_ts[i], camera_ts[j], radar_ts[k]) - \
min(lidar_ts[i], camera_ts[j], radar_ts[k])
total_diff += max_diff
min_val = min(lidar_ts[i], camera_ts[j], radar_ts[k])
if lidar_ts[i] == min_val:
i += 1
elif camera_ts[j] == min_val:
j += 1
else:
k += 1
return total_diff
面試準備建議
技術棧要求
- 語言:C++ 為主(效能敏感),Python 用於 OA
- 核心領域:電腦視覺、SLAM、路徑規劃、感測器融合
- 系統能力:即時系統、多執行緒程式設計、ROS
FAQ
WeRide OA 考什麼類型的題?
WeRide OA 主要考察圖演算法(最短路徑、BFS/DFS)、貪心調度、動態規劃等。題目通常會包裝成自動駕駛相關的場景,如路徑規劃、感測器資料處理、圖像處理調度等。
WeRide 面試用什麼語言?
OA 階段支援多種語言(Python、C++、Java),但後續技術面試更偏向 C++,因為自動駕駛系統對效能要求極高。如果你主要使用 Python,OA 階段沒有問題。
WeRide 和其他自動駕駛公司(Waymo、Cruise)的面試有什麼區別?
WeRide 的面試更注重工程實現能力和對自動駕駛全棧的理解,題目難度相對 Waymo 略低,但對系統設計和即時性的考察更深入。同時 WeRide 有中文面試選項。
WeRide 的 OA 通過率大概是多少?
根據一畝三分地的面經回饋,WeRide OA 通過率約 40-50%,題目難度中等偏上。關鍵是要在限定時間內寫出正確且高效的程式碼。
正在準備 WeRide 面試?
oavoservice 提供專業的自動駕駛公司 OA/VO 輔助服務,覆蓋 WeRide、Waymo、Cruise、Pony.ai 等頭部公司。
👉 立即添加微信:Coding0201,獲取真題與輔助方案。
聯繫方式
Email: [email protected]
Telegram: @OAVOProxy