US Nvidia MLE OA 最新題 | 26NG 順利透過分享 | 面試輔助

2,065Views

Nvidia MLE OA 今年依然在 Karat 平臺進行,90 分鐘 3 道題,時間非常緊張,但題目型別比較固定(影象處理 + ML 基礎實現)。我先做自己最擅長的影象題,後面兩道也比較順利地完成了。下面把平臺資訊、3 道最新真題、詳細解題思路和 Python 參考程式碼完整分享給大家。

US Nvidia MLE OA 最新題 | 26NG 順利透過分享 | 面試輔助

Nvidia OA 整體情況

  • 平臺:Karat
  • 時長:90 分鐘
  • 題量:3 道題(1 道 Python 程式設計 + 1 道機器學習建模 + 1 道 AI 協作題)
  • 難度:Medium 為主,時間非常緊張
  • 建議:先做自己最擅長的題,不要在一道題上死磕。提交後 1-2 周出結果,透過後進入技術面。

Nvidia MLE OA 偏重影象處理 + ML 基礎實現,對程式碼能力和數值穩定性的要求較高。

題目 1:影象中心裁剪(Center Crop)

題目描述

實現一個函式,對二維整數列表表示的灰度影象進行中心裁剪。

  • 輸入:image(形狀為 [H, W] 的二維列表)、crop_height、crop_width
  • 輸出:裁剪後的影象,形狀為 [crop_height, crop_width]
  • 保證:crop_height 與 image 高度差為偶數,crop_width 與 image 寬度差為偶數,且裁剪尺寸不超過原圖尺寸。

解題思路

  1. 計算需要在上下 / 左右各裁剪多少畫素:
    • 上下裁剪量:(原圖高度 – 裁剪高度) // 2
    • 左右裁剪量:(原圖寬度 – 裁剪寬度) // 2
  2. 按行、按列取出中心區域的畫素即可。

參考程式碼(Python):

def solution(image: list[list[int]], crop_height: int, crop_width: int) -> list[list[int]]:

    h = len(image)

    w = len(image[0]) if h > 0 else 0

    start_row = (h – crop_height) // 2

    end_row = start_row + crop_height

    start_col = (w – crop_width) // 2

    end_col = start_col + crop_width

    cropped = []

    for row in image[start_row:end_row]:

        cropped.append(row[start_col:end_col])

    return cropped

題目 2:影象順時針旋轉 90 度

題目描述

實現一個函式,將二維整數列表表示的灰度影象順時針旋轉 90 度。

  • 輸入:image(形狀為 [H, W] 的二維列表)
  • 輸出:旋轉後的影象,形狀為 [W, H]
  • 限制:不能使用 np.rot90(),純 Python 或 numpy 均可。

解題思路(純 Python 實現)

順時針旋轉 90 度的本質是:

  1. 先將原矩陣轉置(行列互換)
  2. 再將轉置後的每一行反轉(左右翻轉)

參考程式碼:

def solution(image: list[list[int]]) -> list[list[int]]:

    if not image or not image[0]:

        return []

    h = len(image)

    w = len(image[0])

    rotated = []

    for col in range(w):

        new_row = [image[h – 1 – row][col] for row in range(h)]

        rotated.append(new_row)

    return rotated

題目 3:Softmax 函式實現

題目描述

實現 Softmax 函式,輸入為 logits 列表,輸出為歸一化後的機率列表。

  • 公式:σ(z)i = e^zi / Σ e^zj
  • 限制:不能使用 torch 或 numpy;直接按公式實現可能會有數值溢位問題,需要最佳化。

解題思路(數值穩定版)

為了避免指數運算導致的數值溢位,採用減去最大值的最佳化方式:

σ(z)i​ = e^(zi – max(z)) / Σ e^(zj – max(z))

參考程式碼:

import math

def solution(z: list[float]) -> list[float]:

    if not z:

        return []

    max_z = max(z)

    exps = [math.exp(x – max_z) for x in z]

    sum_exps = sum(exps)

    softmax = [exp / sum_exps for exp in exps]

    return softmax

備戰建議(26NG MLE 專屬)

  • 時間管理:90 分鐘 3 道題非常緊張,建議先做自己最擅長的題(我先做了影象處理題)。
  • 影象處理:Nvidia MLE OA 經常考中心裁剪、旋轉、歸一化等基礎操作,提前熟悉二維列表操作。
  • 數值穩定:Softmax 這類 ML 基礎函式一定要掌握減 max 的最佳化技巧。
  • AI 協作題:可能涉及 prompt engineering 或簡單多 Agent 協作,提前瞭解常見協作模式。

推薦閱讀

LeetCode 相關題目:

48. Rotate Image

1302. Deepest Leaves Sum

更多 Nvidia MLE / 26NG 的 OA 和 VO 最新真題、解題思路和模擬練習,可以參考 Programhelp 上的 Nvidia 系列面經文章。他們整理了大量一手資料和 VO實戰輔導 分享,非常值得一看。

祝大家早日透過 OA,拿到 Nvidia Offer!

author avatar
Jack Xu MLE | 微軟人工智慧技術人員
Princeton University博士,人在海外,曾在Google、蘋果等多家大廠工作。深度學習NLP方向擁有多篇SCI,機器學習方向擁有Github千星⭐️專案。
END
 0