🧩Algo 技巧
136. 只出现一次的数字
难度:🟢 Easy | 标签:位运算、异或 | 状态:⬜ LeetCode 链接
思路
异或性质:a ^ a = 0,a ^ 0 = a。
所有数异或,相同对抵消,剩下的就是唯一出现一次的。
代码
class Solution {
public:
int singleNumber(vector<int>& nums) {
int res = 0;
for (int x : nums) res ^= x;
return res;
}
};
复杂度
- 时间 O(n),空间 O(1)
易错 / 回顾
- 异或满足交换律 / 结合律,所以顺序无关
- 137(其他元素出现 3 次):位运算计数 mod 3
- 260(两个只出现 1 次):异或后按某位分组
Related · 技巧