找出数组中出现奇数次的元素<异或的应用>

来源:互联网 发布:python 培训 郑州 编辑:程序博客网 时间:2024/05/01 16:33

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

题目描述|:给定一个包含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************************/


原创粉丝点击