方法二:在 O(1) 额外空间下,如何用“原地哈希/置换”找出缺失的两个数?核心步骤是什么?
Method 2: With O(1) extra space, how can you use in-place hashing / cyclic placement to find the two missing numbers? What are the key steps?
题目类型: 技术面试题
这是一道技术面试题,常见于澳洲IT公司面试中。
难度: medium
分类: Algorithms
标签: in-place hashing, cyclic sort, swap
参考答案摘要
答案 思路:把每个值 v 放到它应该在的位置(常见映射:索引 i 对应值 i+1)。完成后扫描数组,没对上的位置就是缺失值。 因为 nums 长度是 N-2,可先在数组尾部追加两个占位(如 -1),让长度变为 N,避免越界并能覆盖 1..N 的位置。 循环 i=0..N-1:当 nums[i] 在 1..N 且 nums[i] != nums[nums[i]-1] 时,swap(nums[i], ...
本题提供 STAR 原则详细解答和技术解析,登录匠人学院学习中心即可查看完整答案。