找出数组中只出现一次的两个数
来源:互联网 发布:c语言单链表反转 编辑:程序博客网 时间:2024/05/17 08:50
题目大意:一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。
参考博客:http://blog.csdn.net/fanzitao/article/details/7900764
代码:
#include<cstdio>using namespace std;int gt[] = { 1,2,2,3,4,4,5,5,7,7,8,8 };int main(){ int ans = 0, pos = 0,len= sizeof(gt) / sizeof(int); int num1 = 0, num2 = 0; for (int i = 0;i < len;++i) ans ^= gt[i]; while (ans) { ans >>= 1; pos++; } for (int i = 0;i < len;++i) { if (gt[i] & (1 << pos - 1)) num1 ^= gt[i]; else num2 ^= gt[i]; } printf("%d %d\n", num1, num2);}
阅读全文
0 0
- 数组------找出数组中只出现一次的两个数
- 找出数组中两个只出现一次的数
- 找出数组中两个只出现了一次的数
- 找出数组中只出现一次的两个数
- 找出一个数组中只出现一次的两个数
- 找出只出现一次的两个数
- 找出两个只出现一次的数
- 如何快速找出数组中只出现一次的两个数
- 从数组中找出只出现一次的两个数,数组中其他数都出现两次
- 找出数组中两个只出现一次的数字
- 找出数组中两个只出现一次的数字--总结
- 找出数组中两个只出现一次的数字
- 找出数组中两个只出现一次的数字
- 找出数组中两个只出现一次的数字
- 找出数组中两个只出现一次的数字
- 找出数组中两个只出现一次的数字
- 找出数组中两个只出现一次的数字
- 找出数组中两个只出现一次的数字
- bzoj 4749: [Usaco2016 Dec]Moocast dfs
- 从头开始学算法:考研机试题练习(C/C++)--基础知识
- Java 反射
- 关于前滚(roll forward)和回滚(roll back)
- 同学推荐的机器学习资料
- 找出数组中只出现一次的两个数
- 【python】pip安装报错UnicodeDecodeError: 'ascii' codec can't decode byte 0xce in position 7: ordinal not i
- Unity2D入门手册
- springcache使用笔记002_注释驱动的 Spring cache 按条件查询
- Sqoop安装及初体验
- 正则表达式
- python生成日志
- HDU
- Java集合类系列(3)--遍历集合