leetcode136 只出现一次的数字

第一个方法,现学现卖,先排序,排完序了再遍历,找没有重复的

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

擦,居然能用异或,我真的服了,真牛,万万没想到能在这地方看见这东西,贴代码

class Solution {
public:
    int singleNumber(vector<int>& nums) 
    {
        int ret = 0;
        for(auto e:nums)
        ret ^= e;
        return ret;
    }
};

 

posted @ 2021-03-05 17:45  zhaohhhh  阅读(51)  评论(0)    收藏  举报