(C++)只出现一次的数字II--异或

简介: (C++)只出现一次的数字II--异或

个人主页:Lei宝啊

愿所有美好如期而遇


本题我们仍然使用异或解决,但是这一次我们发现如果用0直接去异或整个数组,我们什么也得不到,所以我们可以排序,然后只异或相邻数据,然后下标一次向后加三,如果说相邻的不相等,那么本次下标的数据就是单个数字。

class Solution 
{
public:
    int singleNumber(vector<int>& nums) 
    {
        sort(nums.begin(),nums.end());
        for(int i=0; i+1<nums.size();)
        {
            if(nums[i] == nums[i+1])
            {
                i += 3;
            }
            else
            {
                return nums[i];
            }
        }
        return nums[nums.size()-1];
    }
};


目录
相关文章
|
6月前
|
Python
如果一个n位正整数等于其各位数字的n次方之和
如果一个n位正整数等于其各位数字的n次方之和
|
算法 测试技术 C#
C++数位算法:数字1的个数
C++数位算法:数字1的个数
|
21天前
判断该数字是正数还是负数或是零
【10月更文挑战第15天】判断该数字是正数还是负数或是零。
33 2
|
1月前
判断一个数字是否为质数
判断一个数字是否为质数。
51 9
|
6月前
28.求任意一个整数的十位上的数字
28.求任意一个整数的十位上的数字
79 3
|
6月前
|
机器学习/深度学习
判断一个数字是否是2的N次方
判断一个数字是否是2的N次方
56 0
|
6月前
|
C++
(C++)只出现一次的数字I--异或
(C++)只出现一次的数字I--异或
33 0
判断一个数字是否是回文数||取整与取余
判断一个数字是否是回文数||取整与取余
79 0
判断数字位数
判断数字位数
67 0
|
算法
异或^符号的使用
异或^符号的使用
113 0