136只出现一次的数字
题目链接:
https://leetcode.cn/problems/single-number/description/
这道题我们要知道^是不进位的相加,如果都为1,加之后为0,都为0加之后为0,一个为1一个为0,加之后为1,所以我们两个相同的数字^之后结果一定是0的。
那么我们就这样把给定的数组中的数每个都^一下,最后的结果就是我们要求的只出现一次的数字。
这个前提是我们的^是不受运算顺序约束的,这个根据我们相加是不进位的,我们就很容易理解,它的运算结果不受运算顺序的影响。
代码如下:
class Solution {
public:int singleNumber(vector<int>& nums) {int count=0;int a=nums[0];for(auto e:nums){if(count!=0){a=a^e;}count++;}return a;}
};