NVIDIA OA 真题分享|两题经典组合详解(单调栈 + 数组构造)

556次閱讀

最近有位 Programhelp 的北美学员顺利完成 NVIDIA OA ,我们一起复盘了这次测试内容。
他是加州某校 CS Master,Leetcode 刷题量 300 左右,算法基础还不错,但之前没做过单调栈类型题。
好在临考前我们安排了几轮模拟陪练,重点练了「贡献计数」和「子数组类」题型,结果正式考试稳稳拿下两题全AC。

这次的题目组合非常典型,一道是偏算法逻辑的单调栈题,一道是轻松的构造题。
整体难度中等,但细节处理决定了得分率。

NVIDIA OA 真题分享|两题经典组合详解(单调栈 + 数组构造)

Q1: Sum of Subarray Minimums

Problem:
Given an integer array arr, return the sum of the minimum value of every possible subarray of arr. Since the answer may be large, return it modulo 109+710^9 + 7109+7.

Example:

Input: arr = [3, 1, 2, 4]
Output: 17
Explanation:
Subarrays are [3], [3,1], [3,1,2], [3,1,2,4], [1], [1,2], [1,2,4], [2], [2,4], [4]
Their minimums are [3,1,1,1,1,1,1,2,2,4]
Sum = 17

思路分析:
这题如果暴力去枚举所有子数组,时间复杂度会高到 O(n²)。
更巧的方式是“换个角度”:每个元素能当几次最小值?
只要知道这个“出现次数”,乘上当前值,就是它的总贡献。

算法步骤如下:

  1. 使用 单调递增栈 找出每个元素左边第一个比它小的位置 left[i]
  2. 同理,找出右边第一个比它小的位置 right[i]
  3. 当前元素的贡献 = (i - left[i]) * (right[i] - i) * arr[i]
  4. 所有贡献相加,并对 109+710^9 + 7109+7 取模。

核心考点: 单调栈 + 贡献计数
时间复杂度: O(n)
这题几乎是 NVIDIA、Amazon、Google OA 的“老朋友”,值得熟练掌握。

Q2: Unique Integers That Sum Up to Zero

Problem:
Given an integer n, return an array containing n unique integers that sum up to 0.

Example:

Input: n = 5
Output: [-2, -1, 0, 1, 2]

思路分析:
这题属于典型的构造题,难度偏低。
逻辑很直白:

  • 如果 n 是偶数,就可以两两配对 [1, -1, 2, -2, ...]
  • 如果 n 是奇数,除了配对,再额外加一个 0

核心考点: 数组构造 + 数学思维
时间复杂度: O(n)

学员感受与总结

学员反馈这套 NVIDIA OA 的题量不大(通常 2 题 70 分钟),但逻辑强度适中,非常考察算法掌握的“熟练度”。
第一题让他直呼“幸好练过单调栈”,第二题则轻松收尾。

整体体验:

“时间很紧,但题型套路都练到过,Programhelp 的语音提醒节奏太有用了,做题节奏稳多了。”

延伸建议

如果你正在准备 NVIDIA、AMD、Intel 或 Qualcomm 的软件工程类岗位,可以重点复习:

  • 单调栈、前后缀贡献计数类题型
  • 构造题(balance / symmetric sum)
  • 模运算与边界控制

另外建议实战时多练定时模拟题,模拟真实 OA 时间压力。

FAQ 常见问题解答

Q1:NVIDIA 的 OA 难度大吗?
A:整体中等偏上,偏算法逻辑思维,少纯实现题。通常包含 2~3 题,需在 70 分钟内完成。

Q2:语言有限制吗?
A:平台支持多种语言(Python、C++、Java)。Python 用户需要特别注意超时问题,建议提前熟悉 input/output 模式。

Q3:考哪些算法类型多?
A:NVIDIA OA 偏好考“贡献类”题(单调栈、前后缀积、滑动窗口)、构造题、数组/字符串处理。DP 和图题较少见。

Q4:做题卡壳怎么办?
A:如果是正式测试环境,可以提前使用 Programhelp 的远程语音助攻服务,我们会实时提示思路与代码边界,帮助在限定时间内稳定输出结果。

OA 无痕助攻|Programhelp 实战助攻计划

NVIDIA 这类公司在 OA 阶段就开始“筛思维”,不只是能写代码,还要反应快、结构清晰。
很多同学明明平时能写出来,一到正式笔试就卡在细节、或者时间不够。
这正是 Programhelp 无痕助攻 方案发挥作用的地方。

我们的核心是 —— 远程实时语音提醒 + 无痕联机陪练。
你在答题界面正常作答,我们后台实时观察进度,
在关键节点语音提示 “这里考虑下边界”、“复杂度可以再优化一点”,
全程无屏幕痕迹、无输入干扰,平台检测不到任何外部连接。

我们已经帮助超过 300+ 北美 CS 学员 顺利通过 NVIDIA、Amazon、Stripe、Citadel、IMC 等顶级公司 OA,
整体通过率高达 96%+

author avatar
Jory Wang Amazon资深软件开发工程师
Amazon 资深工程师,专注 基础设施核心系统研发,在系统可扩展性、可靠性及成本优化方面具备丰富实战经验。 目前聚焦 FAANG SDE 面试辅导,一年内助力 30+ 位候选人成功斩获 L5 / L6 Offer。
正文完