有100张卡片,每张卡片上写有一个1到1000之间的整数(数字可能重复),请设计一种数据结构存储这100个数字。之后随机拿走其中两张卡片,剩下98张,如何最快地找出被拿走的两个数字分别是什么?
考察说明
考察哈希表设计、追加信息和数学解法在丢失检测中的权衡
回答思路
- 说明用哈希表存储可支持O(1)查找和删除,但无法单独定位丢失的两个数
- 展示利用额外信息(如总和与平方和、或异或)推导缺失值
- 比较两种方案的时间与空间复杂度,并强调重复数字时的处理
- 得出最快算法应兼顾内存访问与数学计算
本题已收录答题指导
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。