NVIDIA 面试题 #1 —— 判断数组是否可通过最多一次修改变为非递减 – 英伟达面经 –

2次阅读
没有评论

Given an array nums with n integers, your task is to check if it could become non-decreasing by modifying at most one element.
We define an array as non-decreasing if nums[i] <= nums[i+1] holds for every i (0-based) such that 0 <= i <= n-2.

总结(思路)
一次线性扫描,找到所有违背 nums[i] <= nums[i+1] 的位置。若超过一次,返回 false。若恰好一次,在该处尝试“调低左边”或“抬高右边”:

  • i==0nums[i-1] <= nums[i+1],可把 nums[i] 调到 nums[i+1]
  • 否则把 nums[i+1] 调到 nums[i]
    能通过上述检查则 true。时间 O(n),空间 O(1)。

VOprep 团队长期陪同学员实战各类大厂 OA 与 VO,包括 OpenAI、Google、Amazon、Citadel、SIG 等,提供实时答案助攻、远程陪练与面试节奏提醒,帮助大家在关键时刻不卡壳。
如果你也在准备 Stripe 或类似工程向公司,可以了解一下我们的定制助攻方案——从编程面到系统设计,全程护航上岸。

正文完
 0