点击打开链接:百度面试题之找出数组中之出现一次的两个数(异或的巧妙应用)

题目描述|:给定一个包含n个整数的数组a,其中只有一个整数出现奇数次,其他整数都出现偶数次,请找出这个整数

使用异或操作,因为值相等的两个元素异或后结果为0,那么将数组的所有元素进行异或以后,结果就是出现奇数次的那个整数

#include<iostream>
using namespace std;
int Find_Number_appear_old_times(int a[], int n)
{
int ret= a[0] ;
for(int i = 1; i < n; i++)
ret^= a[i] ;
return ret ;
}
int main()
{
//Test code
int test[] = {2013,1991,1991,1991, 1992, 1993, 1994, 1994, 1993, 1992, 1993, 1993, 2013} ;
cout<<"Number_appear_old_times:\n"
<<Find_Number_appear_old_times(test, sizeof(test)/sizeof(test[0])) << endl ;
}
/***********************
运行结果:
Number_appear_old_times:
1991 ************************/

找出数组中出现奇数次的元素<异或的应用>的更多相关文章

  1. 剑指Offer:找出数组中出现次数超过一半的元素

    题目:找出数组中出现次数超过一半的元素 解法:每次删除数组中两个不同的元素,删除后,要查找的那个元素的个数仍然超过删除后的元素总数的一半 #include <stdio.h> int ha ...

  2. Java实现找出数组中重复次数最多的元素以及个数

    /**数组中元素重复最多的数 * @param array * @author shaobn * @param array */ public static void getMethod_4(int[ ...

  3. [LeetCode] Find All Numbers Disappeared in an Array 找出数组中所有消失的数字

    Given an array of integers where 1 ≤ a[i] ≤ n (n = size of array), some elements appear twice and ot ...

  4. 找出数组中出现次数超过一半的数,现在有一个数组,已知一个数出现的次数超过了一半,请用O(n)的复杂度的算法找出这个数

    找出数组中出现次数超过一半的数,现在有一个数组,已知一个数出现的次数超过了一半,请用O(n)的复杂度的算法找出这个数 #include<iostream>using namespace s ...

  5. 找出数组中最大值and索引

    找出数组中的最大值和和最大值的索引位置..... 第一中方法: /** * 找出数组中最大值和最大值的索引 * @param args */ public static void main(Strin ...

  6. 剑指offer:1.找出数组中重复的数(java版)

    数组中重复的数:题目:找出数组中重复的数,题目描述:在一个长度为n的数组里的所有数字都在0到n-1的范围内.数组中某些数字是重复的,但不知道有几个数字是重复的.也不知道每个数字重复几次.请找出数组中任 ...

  7. 【Java】 剑指offer(1) 找出数组中重复的数字

    本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集 题目 在一个长度为n的数组里的所有数字都在0到n-1的范围内.数组中某些数字 ...

  8. python找出数组中第二大的数

    #!usr/bin/env python #encoding:utf-8 ''''' __Author__:沂水寒城 功能:找出数组中第2大的数字 ''' def find_Second_large_ ...

  9. 剑指offer.找出数组中重复的数字

    题目: 给定一个长度为 n 的整数数组 nums,数组中所有的数字都在 0∼n−1 的范围内.数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次.请找出数组中任意一个重复的数 ...

随机推荐

  1. shell编程的一些例子3

    数值处理 1.let 命令 bash 的内部命令let可以用来计算算术表达式的值.如果表达式中有空格或者特殊字符,则应将表达式括在双引号中. let的语法命令:let express-list 如果最 ...

  2. iOS 9适配技巧

    中文快速导航: 1.iOS9网络适配_ATS:改用更安全的HTTPS(见Demo1) i. WHAT(什么是SSL/TLS?跟HTTP和HTTPS有什么关系) ii. WHY(以前的HTTP不是也能用 ...

  3. vs15

    vs15 preview5 离线安装包 vs15 preview5 离线安装包   1.介绍 vs15是微软打造的新一代IDE,全新的安装方式.官网介绍如下(https://blogs.msdn.mi ...

  4. servlet 默认是线程安全的吗?

    由于Servlet默认是以多线程模式执行的,所以,在编写代码时需要非常细致地考虑多线程的安全问题.然而,很多人编写Servlet程序时并没 有注意到多线程安全的问题,这往往造成编写的程序在少量用户访问 ...

  5. 10 个 jQuery 的无限滚动的插件:

    很多社交网站都使用了一些新技术来提高用户体验,而无限滚动的翻页技术就是其中一项,当你页面滑到列表底部时候无需点击就自动加载更多的内容. 下面为你推荐 10 个 jQuery 的无限滚动的插件: 1.  ...

  6. SecureCRT 绝佳配色方案, 保护你的眼睛

    http://blog.csdn.net/zklth/article/details/8937905   关键词:SecureCRT配色, SecureCRT设置颜色, Linux终端配色,Linux ...

  7. DJANGO:根据不同的环境,配置不同的SETTINGS文件,读取不同的DB,JENKINS,SALT配置

    今天撸了一次,实现如下: 1,新建配置目录,将不同的环境的SETTINGS.PY文件独立出来,并将各自环境引用的DB连接,JENKINS,SALT等参数都写在里面. DEMO: JENKINS = { ...

  8. PYTHON小CASE

    import os import time source = ['C:\\py\\', 'C:\\work\\'] target_dir = 'C:\\backup' today = target_d ...

  9. Android 4.0设计规范 优先导读 十大改变

    在拜读和翻译了 Android design 设计指导后,对比 Android 4.0 与 Android2.3 及之前版本的 app 设计指导,总结了 Android 4.0 设计的 10 大改变: ...

  10. Linux中的随机数文件 /dev/random /dev/urandom

    Linux中的随机数可以从两个特殊的文件中产生,一个是/dev/urandom.另外一个是/dev/random.他们产生随机数的原理是利用当前系统的熵池来计算出固定一定数量的随机比特,然后将这些比特 ...