【刷题之路】寻找奇数次出现的数

原创 2016年06月01日 21:14:30

有一个整型数组A,其中只有一个数出现了奇数次,其他的数都出现了偶数次,请打印这个数。要求时间复杂度为O(N),额外空间复杂度为O(1)。

给定整形数组A及它的大小n,请返回题目所求数字。

使用位运算异或的两个特性,即可以解决此类问题,将数组中所有数异或,剩下的数即为出现奇数次的数字

class OddAppearance {
public:
    int findOdd(vector<int> A, int n) {
        // write code here
        int res=0,i;
        for(i=0;i<n;i++){
            res^=A[i];
        }
        return res;
    }
};

版权声明:本文为博主原创文章,未经博主允许不得转载。

在其它数都出现偶数次的数组中寻找出现奇数次的数

通过位运算,寻找出现出现奇数次的数

异或(^)的妙用——求一组数据中唯一一个出现奇数次的数!

在C语言中,“^”是一个双目运算符,用于完成两个数据的按位异或操作。 例如: 5^4 (00000101)^(00000100)=(00000001)=1 ...

牛客网刷题之调整数组顺序使奇数位于偶数前面

题目描述:解题思路:  如果是强解的话,就可以从头扫描这个数组,每碰到一个偶数时,拿出这个数字,并把位于这个数字后面的所有数字都往前挪动一位,这种解法显然是O(n^2)的,不用想都知道,这不可能通过测...

如何用c语言寻找十进制数二进制的奇数位.偶数位.任意位

十进制与二进制的转化,寻找二进制的奇数位,偶数位,任意位。
  • WRNGT
  • WRNGT
  • 2016年11月15日 12:41
  • 877

剑指offer刷题之c++实现的调整数组顺序使奇数位于偶数前面

#include "myHead.h" /** 调整数组顺序,使得奇数全部放左边,偶数全部放右边,不考虑原来数组中的奇(偶)数之间相对顺序 */ int condition(int x); v...

找出数组中出现奇数次的元素

题目:给定一个含有n个元素的整型数组array,其中只有一个元素出现奇数次,找出这个元素。 分析:因为对于任意一个数 k,k^k = 0,k^0 = k,所以将array中所有元素进行异或,那么个数...

程序员面试题目总结--数组(五)【数组的后面m个数移动为前面m个数、列的前n项数据、判断整数x是否可以表示成n个连续正整数的和、数组中出现奇数次的元素、二维数组中的查找】

21、将数组的后面m个数移动为前面m个数 题目:

学习笔记——利用位运算求数组中只出现一次或奇数次的数字

2013.10.24 早上 问题:利用位运算求数组中只出现一次或奇数次的数字 问题描述: 该问题是我在网易博主何海涛的博文上转载而来,分析部分源自作者的博文用于学习,代码部分是我本人参照是实现的...
  • xhrno13
  • xhrno13
  • 2013年10月24日 12:17
  • 490

【面试题】数组中有两个元素出现了奇数次,其他元素出现了偶数次。找出这两个元素

数组中有两个元素出现了奇数次,其他元素出现了偶数次。找出这两个元素。 把原数组分为两个子数组。在每个子数组中,包含一个只出现一次的数字,而其他数字都出现两次。如果能够这样拆分原数组,按照前面的办法就...
  • bxyill
  • bxyill
  • 2013年03月09日 09:14
  • 2699

连续x次奇数(n+2*x)是合数的算法题暴力算法

// 连续6个奇数a,a+2,a+4,a+6,a+8,a+10都是合数,求最小的a// 暴力解法先上结果,后面贴上代码:1次连续n=9,连续值个数: 1;耗时: 0ms,总计: 0ms 2次连续n=2...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【刷题之路】寻找奇数次出现的数
举报原因:
原因补充:

(最多只允许输入30个字)