US Nvidia MLE OA 最新题 | 26NG 顺利通过分享 | 面试辅助

2,067Times read

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博士,人在海外,曾在谷歌、苹果等多家大厂工作。深度学习NLP方向拥有多篇SCI,机器学习方向拥有Github千星⭐️项目。
End of text
 0