口撕算法:无序数组,长度100万,求两数和等于 target 的数量,先写一个 O(nlogn) 的解法,再优化为 O(n) 的解法。
考察说明
考察排序与哈希两种算法思路及复杂度分析,以及从 O(nlogn) 到 O(n) 的优化能力
回答思路
- 能清晰说明 O(nlogn) 方案:排序后双指针或二分查找,注意处理重复元素计数
- 能实现 O(n) 方案:哈希表记录每个数的出现次数,避免重复配对
- 能正确分析两种解法的时间与空间复杂度,并说明为何 O(n) 方案更优
- 能处理边界情况:数组元素重复、target 为两倍元素值、存在负数
- 代码逻辑清晰,变量命名规范,能口头解释关键步骤
本题已收录答题指导
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。