NVIDIA OA 真題分享|兩題經典組合詳解(單調棧 + 陣列構造)

最近有位 Programhelp 的北美學員順利完成 NVIDIA OA ,我們一起復盤了這次測試內容。
他是加州某校 CS Master,Leetcode 刷題量 300 左右,演算法基礎還不錯,但之前沒做過單調棧類型題。
好在臨考前我們安排了幾輪類比陪練,重點練了「貢獻計數」和「子陣列類」題型,結果正式考試穩穩拿下兩題全 AC。

這次的題目組合非常典型,一道是偏演算法邏輯的單調棧題,一道是輕鬆的構造題。
整體難度中等,但細節處理決定了得分率。

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 的軟體工程類崗位,可以重點複習:

  • 單調棧、前後綴貢獻計數類題型
  • 構造題(平衡/對稱和)
  • 模運算與邊界控制

另外建議實戰時多練定時模擬題,模擬真實 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
jor jor
END
 0