面试经典150题 P137 只出现一次的数字 II
时间轴
2025-11-25
init
题目:
对于异或,如果数字 x 出现多次:
x ^ x = 0
x ^ x ^ x = x
x ^ x ^ x ^ x = 0
…
所以:偶数个 ⇒ 抵消成 0,奇数个 ⇒ 剩下 1 个 x
可以从更深层的角度理解: XOR 是一种 “mod 2 的无进位加法”
例如:
- 1 ^ 1 = (1 + 1) mod 2 = 0
- 1 ^ 1 ^ 1 = (1 + 1 + 1) mod 2 = 1
完全符合: - 偶数次 → mod 2 = 0
- 奇数次 → mod 2 = x
而题目其他数字出现三次,我们需要取模 3: - 对于每一个比特位(0/1),三个相同数字中,这一位出现了三次:
- 若这一位是 0:0+0+0 = 0 (mod 3)
- 若这一位是 1:1+1+1 = 3 ≡ 0 (mod 3)
这整个过程等价于:
👉 对每一位进行模 3 运算,但用位运算实现。
1 |
|
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 常想一二,不思八九!
评论





