找出数组中两个只出现一次的数字
2015-04-09 14:12
246 查看
题目:一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字
通过这道题感觉位运算很强大~这道题利用异或的几个性质:任何数与其本身异或值都为0,异或运算满足交换律。因此将一组数依次异或,若里面只有一个只出现一次的数,其他的数都出现两次,则最后的结果必然是那个只出现一次的数。要找到两个数字就可以先通过异或整个数组,将得到的结果分组。然后依次安组异或就可以得到所求的值~
代码如下:
通过这道题感觉位运算很强大~这道题利用异或的几个性质:任何数与其本身异或值都为0,异或运算满足交换律。因此将一组数依次异或,若里面只有一个只出现一次的数,其他的数都出现两次,则最后的结果必然是那个只出现一次的数。要找到两个数字就可以先通过异或整个数组,将得到的结果分组。然后依次安组异或就可以得到所求的值~
代码如下:
相关文章推荐
- 每天一道算法题10 找出数组中两个只出现一次的数字
- 100题_34 找出数组中两个只出现一次的数字
- 【每日面试题】找出数组中两个只出现一次的数字
- 找出数组中唯一出现一次的两个数字
- 找出数组中两个只出现一次的数字
- 程序员面试100题之三十四,找出数组中两个只出现一次的数字
- 算法题6 找出整数数组中两个只出现一次的数字
- 找出数组中两个只出现一次的数字
- 【转帖】找出数组中两个只出现一次的数字
- 解题笔记(24)——找出数组中两个只出现一次的数字(数组)
- 每天一道算法题10 找出数组中两个只出现一次的数字
- [数组]找出数组中两个只出现一次的数字
- 找出数组中两个只出现一次的数字
- 程序员面试题精选100题(34)-找出数组中两个只出现一次的数字
- 找出数组中两个只出现一次的数字
- 面试题_找出数组中两个只出现一次的数字
- 程序员面试题精选100题(34)-找出数组中两个只出现一次的数字
- 【算法14】找出数组中两个只出现一次的数字
- 找出数组中两个只出现一次的数字--分组异或
- 找出数组中两个只出现一次的数字 [No. 30]