(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天前
数一下 1到 100 的所有整数中出现多少个数字9并输出这些数字
数一下 1到 100 的所有整数中出现多少个数字9并输出这些数字
19 0
|
7月前
|
算法 测试技术 C#
C++数位算法:数字1的个数
C++数位算法:数字1的个数
|
4天前
28.求任意一个整数的十位上的数字
28.求任意一个整数的十位上的数字
13 3
|
6天前
|
C++
c++数字运算
c++数字运算
13 0
|
6天前
leetcode-1365:有多少小于当前数字的数字
leetcode-1365:有多少小于当前数字的数字
24 0
|
6天前
|
C++
(C++)只出现一次的数字I--异或
(C++)只出现一次的数字I--异或
20 0
|
9月前
wustojc2001输出四位整数的各位数字
wustojc2001输出四位整数的各位数字
52 0
|
11月前
判断数字位数
判断数字位数
42 0
|
11月前
|
算法
异或^符号的使用
异或^符号的使用
60 0
输出整数各位数字
输出整数各位数字
54 0