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


目录
相关文章
|
19天前
数一下 1到 100 的所有整数中出现多少个数字9并输出这些数字
数一下 1到 100 的所有整数中出现多少个数字9并输出这些数字
23 0
|
19天前
|
Python
如果一个n位正整数等于其各位数字的n次方之和
如果一个n位正整数等于其各位数字的n次方之和
|
8月前
|
算法 测试技术 C#
C++数位算法:数字1的个数
C++数位算法:数字1的个数
|
5天前
|
机器学习/深度学习
判断一个数字是否是2的N次方
判断一个数字是否是2的N次方
10 0
|
16天前
28.求任意一个整数的十位上的数字
28.求任意一个整数的十位上的数字
51 3
|
19天前
|
C++
c++数字运算
c++数字运算
13 0
|
19天前
|
C++
(C++)只出现一次的数字I--异或
(C++)只出现一次的数字I--异或
20 0
|
10月前
wustojc2001输出四位整数的各位数字
wustojc2001输出四位整数的各位数字
53 0
|
10月前
判断一个数字是否是回文数||取整与取余
判断一个数字是否是回文数||取整与取余
61 0
|
12月前
判断数字位数
判断数字位数
42 0