logo

给定一个数组 nums,包含从 1 到 N 的所有整数但缺失两个数字(数组长度为 N-2)。要求 O(N) 时间、O(1) 额外空间,找出缺失的两个数字,并说明思路。

Given an array nums containing integers from 1 to N with exactly two numbers missing (len = N-2). Find the two missing numbers in O(N) time and O(1) extra space, and explain your approach.

题目类型: 技术面试题

这是一道技术面试题,常见于澳洲IT公司面试中。

难度: medium

分类: Algorithms

标签: missing two numbers, O(1) space, O(N) time

参考答案摘要

答案 关键是先确定 N:通常 N = len(nums) + 2。目标是在不使用额外哈希表的前提下恢复两个缺失值。 常见有三类做法:数学(和与平方和)、原地哈希(把值放回“该在的位置”)、位运算(整体异或后按最低不同位分组)。 三种方法都能做到 O(N) 时间;数学与位运算天然 O(1) 空间,原地哈希也可做到 O(1) 额外空间。

本题提供 STAR 原则详细解答和技术解析,登录匠人学院学习中心即可查看完整答案。

← 返回面试题库

给定一个数组 nums,包含从 1 到 N 的所有整数但缺失两个数字(数组长度为 N-2)。要求 O(N) 时间、O(1) 额外空间,找出缺失的两个数字,并说明思路。

Mediumalgorithmsmathbitwise

想查看完整答案?

登录匠人学院学习中心,获取 STAR 格式回答和详细技术解析

前往学习中心查看答案