一个整形数组中只有两个数字是出现一次,其它成对出现
2016-11-04 18:42
441 查看
思路:如果只有一个数字只出现一次,而其他都出现两次,则直接将所有数字做一次异或运算即可,因为相等的数字异或一下结果为0。如果有两个数字只出现一次,而其他数字出现了两次。该怎么办呢?《编程之美》一书提供了一种方法,即先将所有数字做一次异或运算,得到一个数字,然后以该数字的某非0位作为过滤位,将数组分成两个部分,此时只出现一次的数字会被分到不同的部分。现在问题就转为只出现一次的情况,对每部分分别做异或运算即可。
参考代码:
转载自http://blog.csdn.net/wuzhekai1985
参考代码:
相关文章推荐
- 一个整形数组中只有两个数字是出现一次,其它成对出现
- 求一个数组中只有一个和两个数字出现了一次,其余成对出现
- 一个数组中只有两个数字是出现一次,其他所有数字都成对出现,找出这两个数字,编程实现
- 一个整型数组中,只有两个数字只出现了一次,其余都是成对出现的,输出这两个数。
- 一个数组中只有两个数字是出现一次,其他所有数字都出现了两次,找出这两个数字,编程实现
- 笔试面试成对出现的一组数,只有一个或两个只出现一次的数字,找到它们。
- .一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。 找出这两个数字,编程实现。
- 一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。 找出这两个数字,编程实现。
- 一个整型数组里除了两个数字之外,其它的数字都出现了两次。请写程序找出这两个只出现一次的数字。
- 一个数组中只有两个数字单独出现,其余数字都是成对出现的,请找出这两个数。
- 一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。
- 一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。
- 【C语言】一个数组中只有两个数字是出现一次,其他所有数字都出现了两次,找出这两个数字!
- 一个数组中所有的数都是成对出现的只有一个或者两个数字是单独的,求这个数
- 3.有一个整形数组,只有一个数字出现了一次,请编写程序判断这个数字(大概题目就是这样的,记不太清了)
- 一个数组只有两个数字出现一次,其他数字都出现两次,找出这两个数
- 一个数组中只有两个数是不同的,其他数字是成对出现的,下面代码可将该数组中不同的两数字找出并输出
- 一组数据中只有一个数字出现了一次。 其他所有数字都是成对出现的。请找出这个数字(数组指针的方法)
- 笔试面试成对出现的一组数,只有一个或两个只出现一次的数字,找到它们。
- 一个数组中只有两个数字是出现一次,其他所有数字都出现了两次