给定一个未排序的整数数组,请找出其中缺失的第一个正整数(即从 1 开始的最小未出现正整数),并说明你的算法复杂度。
考察说明
考察数组处理、原地哈希或集合技巧,以及对时间和空间复杂度的权衡
回答思路
- 明确题意:找从 1 开始的最小缺失正整数
- 能提出至少一种可行解法(如排序后扫描、哈希集合、原地置换)
- 分析各解法的时间复杂度和空间复杂度,优选原地置换 O(n) 时间、O(1) 空间
- 处理边界情况,如负数、重复元素、数组为空
- 简洁地说明算法正确性,如置换后扫描条件 i+1 是否存在
- 代码实现正确且逻辑清晰
本题已收录答题指导
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。