NVIDIA VO 面试真题解析:Non-decreasing Array 与 Find Original Array From Doubled Array

25次阅读
没有评论

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.

Given an array changed, return original if changed is a doubled array. If changed is not a doubled array, return an empty array.

The elements in original may be returned in any order.

这道题实际上包含了两类常见数组题:一类是判断数组能否通过最多修改一个元素变成非递减数组,核心是扫描相邻逆序点并根据前后关系决定修改当前值还是下一个值;另一类是从“成对存在原值和两倍值”的打乱数组中还原原数组,通常需要先排序,再用哈希计数或双指针去匹配每个元素与它的两倍。两题都很考察对数组有序性、边界情况和贪心处理的把握。

正文完
 0