只出现一次的数字(异或)leetcode136

首先数学基础web

一个数与自身异或是0,一个数与0异或是自己

异或具备交换率。

举个栗子:2  3  4  2  3
       全部数字依次异或运算:2 xor 3 xor 4 xor 2 xor 3 = (2 xor 2) xor (3 xor 3) xor 4= 0 xor 0 xor 4 = 4
       给定一个非空整数数组,除了某个元素只出现一次之外,其他每一个元素均出现两次。找出那个只出现了一次的元素。

说明:算法

你的算法应该具备线性时间复杂度。 你能够不使用额外空间来实现吗?数组

示例 1:svg

输入: [2,2,1]
输出: 1
示例 2:spa

输入: [4,1,2,1,2]
输出: 4.net

class Solution {
public:
    int singleNumber(vector<int>& nums) {
        int t=0;
        for(int i=0;i<nums.size();i++)
          t^=nums[i];
         return t;
    }
};

本文分享 CSDN - 希境。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。code

相关文章
相关标签/搜索