Leetcode 136. 只出现一次的数字 解题思路及C++实现

    xiaoxiao2023-11-08  171

    解题思路:

    利用异或操作的性质:

    1.恒定律:A ^ 0 = A

    2.归零率:A ^ A = 0

    3.交换律:A ^ B = B ^ A

    4.结合律:(A ^ B) ^ C = A ^ (B ^ C)

    因为题中已说明,其余元素都出现了两次,所以,遍历一遍数组,将所有元素进行异或,得到的结果就是只出现一次的那个数。

     

    class Solution { public: int singleNumber(vector<int>& nums) { int res = 0; //遍历nums数组,进行异或操作 for(auto num: nums){ res = res ^ num; } return res; } };

     

     

     

    最新回复(0)