← 返回部落格列表 WeRide 文遠知行 OA 真題解析:SDE 崗位演算法面經|一畝三分地
WeRide

WeRide 文遠知行 OA 真題解析:SDE 崗位演算法面經|一畝三分地

2026-05-12

WeRide(文遠知行)是全球領先的 L4 級自動駕駛公司,總部位於廣州,在矽谷、北京等地設有研發中心。其 SDE 崗位 OA 題目融合了自動駕駛場景經典演算法,考察候選人在實際工程問題中的建模與編碼能力。本文基於一畝三分地最新面經,系統梳理 WeRide OA 的核心考點。

WeRide OA 概覽

維度 詳情
平台 HackerRank / 自研平台
時長 60-90 分鐘
題量 2-3 道程式題
難度 Medium
考察重點 圖演算法、貪心、模擬、DP

題型一:圖像處理調度(Image Processing Scheduling)

題目描述

自動駕駛系統需要對攝影機採集的圖像進行多種濾鏡處理。每張圖像有指定的處理時間窗口 [start, end],每種濾鏡有不同的處理成本。需要設計一個調度策略,在滿足時間約束的前提下,最小化總處理成本。

返回最小成本對 (10^9 + 7) 取模的結果。

解題思路

這是一個區間調度 + 貪心/DP 問題:

  1. 將圖像按截止時間排序
  2. 對每張圖像,選擇成本最低的可用濾鏡
  3. 使用優先佇列維護當前可用的處理資源

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

面試準備建議

技術棧要求


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