0136. Single Number
这个问题考察的是比特位异或操作中的一个重要特性: A XOR A == 0
.
我们可以利用这个特性, 遍历数组中的每一项, 然后计算异或值, 最后的结果就是那个单值.
这个思路, 可以用于快速消除数组中出现偶数次的元素.
代码也非常简单:
#![allow(unused)] fn main() { // num ^ num = 0 pub fn single_number(nums: Vec<i32>) -> i32 { let mut ans = 0; for num in &nums { ans ^= num; } ans } }