面试时曾被问道,如果有一组数两两相同,而有一个落单,怎么求这个数。
一时没想到用异或,偶尔碰到一个同学聊了一会,恍然大悟。
然后又遇到一个题,如果有两个落单的呢,见一个高手的回复,对他真是赞不绝口啊,果然是人外有人,天外有天。不服都不得行了。。。
/*1.找单数(30%) 给定一个含有n个数的序列,这个序列中恰好有两个数出现一次,请你找出这两数。(假定其他的数都有两个) 函数原型如下: // array[] -- n个数的序列,数的取值范围(-1e9,1e9) // n -- 数的个数,2<=n<=10^8 // reslut[]-- 返回数组,长度为2 void findSingle(int array[], int n,int reslut[]) {
} */ #include <stdio.h> void findSingle(int t[],int n,int result[]) {
unsigned int a,b,c,d; c=0; for(int i=0;i<n;i++
|