class Solution {
public:
/**
*
* @param A int整型一维数组
* @param n int A数组长度
* @return int整型
*/
int singleNumber(int* A, int n) {
int res = 0;
for(int i = 0; i < n; i++)
{
res ^= A[i];
}
return res;
}
};
关键细节解释
- 参数理解:
int* A是数组指针,等价于数组名,A[i]就是访问数组第 i 个元素;n是数组长度,用于控制遍历边界。 - 异或逻辑不变:特性 1:a ^ a = 0(相同数字异或结果为 0);特性 2:0 ^ a = a(0 和任何数字异或结果为数字本身);遍历完所有元素后,重复出现两次的数字都会相互抵消为 0,最终res就是唯一只出现一次的数字。

京公网安备 11010502036488号