美文网首页考研数据结构
找出只出现一次的元素

找出只出现一次的元素

作者: 飞白非白 | 来源:发表于2018-12-04 11:29 被阅读0次
    
    // 一个数组中只有两个数字是出现一次,其他所有数字都出现了两次,
    // 请找出这两个数字
    // 一个数字异或它自己结果为0,异或0结果为它自己即a^a=0,a^0=a,
    // 且异或满足a^b^c=a^(b^c)。因此我们可以设置一个ret异或每个数组
    // 元素,最后相同的都抵消为0,那个唯一的数字异或0为它自己即为答案。
    
    int find_num_once(int a[], int n)
    {
        int i = 0;
        int ret = 0;
        for (i = 0; i < n; i++) 
            ret ^= a[i];
        return ret;
    }
    
    

    相关文章

      网友评论

        本文标题:找出只出现一次的元素

        本文链接:https://www.haomeiwen.com/subject/hnlmcqtx.html