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

原创 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 ...

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

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

剑指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个数 题目:

连续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...

【刷题之路】整数中1出现的次数

1~13中包含1的数字有1、10、11、12、13因此共出现6次,以此类推。 编程之美上给出的规律: 1. 如果第i位(自右至左,从1开始标号)上的数字为0,则第i位可能出现1的次数由...

“寻找奇数”的思考

题: 使用条件运算符从vector中寻找哪些元素的值是奇数,然后将这些奇数的值翻倍。#include using std::cout; using std::cin; using std::en...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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