Meta VO 面试真题解析:数组中只出现一次的元素(其余元素均出现两次)

20次阅读
没有评论

Find the unique element in an array where all other elements appear twice except one.

Examples:

[1, 1, 4, 4, 7, 8, 8, 29, 29] -> 7
[1, 2, 2, 3, 3] -> 1

这道题的核心是找出数组中只出现一次的元素,而其他所有元素都恰好出现两次。最直接的做法是用哈希表统计每个数字的出现次数,再扫描一遍找到次数为 1 的元素;如果题目希望更优雅且节省空间,也可以利用异或运算的性质:相同数字异或结果为 0,任何数字与 0 异或仍是它本身,因此把整个数组全部异或一遍,最终结果就是那个唯一的数。这类题常考对位运算性质的理解,以及在时间复杂度 O(n) 下用 O(1) 额外空间完成求解。

正文完
 0