- 博客(6)
- 收藏
- 关注
原创 只出现一次的数字
有一个 n 个元素的数组,除了两个数只出现一次外,其余元素都出现两次,让你找出这两个只出现一次的数分别是几,要求时间复杂度为 O(n) 且再开辟的内存空间固定(与 n 无关)。然后,因为这两个只出现一次的元素一定是不相同的,所以这两个元素的二进制形式肯定至少有某一位是不同的,即一个为 0 ,另一个为 1 ,现在需要找到这一位。根据前面找一个不同数的思路算法,在这里把所有元素都异或,那么得到的结果就是那两个只出现一次的元素异或的结果。将这一位为 1 的所有元素做异或,得出的数就是只出现一次的数中的另一个。
2024-04-11 23:35:22
144
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人