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==0或nums[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 或类似工程向公司,可以了解一下我们的定制助攻方案——从编程面到系统设计,全程护航上岸。
正文完