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;

    }
};

关键细节解释

  1. 参数理解int* A 是数组指针,等价于数组名,A[i] 就是访问数组第 i 个元素;n 是数组长度,用于控制遍历边界。
  2. 异或逻辑不变:特性 1:a ^ a = 0(相同数字异或结果为 0);特性 2:0 ^ a = a(0 和任何数字异或结果为数字本身);遍历完所有元素后,重复出现两次的数字都会相互抵消为 0,最终res就是唯一只出现一次的数字。