给定一个长度为 n 的整数数组,其中所有元素都在范围 1 到 n 之间(含 1 和 n),且每个元素最多出现两次。请找出所有出现两次的元素。要求不使用额外空间(除返回结果外),时间复杂度为 O(n)。
考察说明
考察利用元素取值与下标映射实现原地标记的算法思路
回答思路
- 说明元素值 1 到 n 与下标 0 到 n-1 的映射关系
- 使用取负或加偏移的原地标记方法区分是否已访问
- 正确处理重复元素只输出一次
- 说明算法时间复杂度和空间复杂度
- 处理边界情况如 n=0 或 n=1
本题已收录答题指导
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。