(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];
    }
};


目录
相关文章
|
7月前
|
Python
如果一个n位正整数等于其各位数字的n次方之和
如果一个n位正整数等于其各位数字的n次方之和
|
算法 测试技术 C#
C++数位算法:数字1的个数
C++数位算法:数字1的个数
|
2月前
判断一个数字是否为质数
判断一个数字是否为质数。
111 9
|
7月前
28.求任意一个整数的十位上的数字
28.求任意一个整数的十位上的数字
83 3
|
7月前
|
机器学习/深度学习
判断一个数字是否是2的N次方
判断一个数字是否是2的N次方
69 0
|
7月前
|
C++
c++数字运算
c++数字运算
37 0
|
7月前
|
C语言
[C语言][题]获取一个整数二进制序列中所有的偶数位和奇数位,分别打印出二进制序列
[C语言][题]获取一个整数二进制序列中所有的偶数位和奇数位,分别打印出二进制序列
49 0
|
7月前
|
C++
(C++)只出现一次的数字I--异或
(C++)只出现一次的数字I--异或
36 0
|
7月前
[leetcode 数位计算]2520. 统计能整除数字的位数
[leetcode 数位计算]2520. 统计能整除数字的位数
|
7月前
打印2进制位数的奇数位和偶数位
打印2进制位数的奇数位和偶数位