[九度oj]题目1351:数组中只出现一次的数字
来源:互联网 发布:sql in和not in的用法 编辑:程序博客网 时间:2024/05/21 23:34
- 题目描述:
- 一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。
- 输入:
- 每个测试案例包括两行:第一行包含一个整数n,表示数组大小。2<=n <= 10^6。第二行包含n个整数,表示数组元素,元素均为int。
- 输出:
- 对应每个测试案例,输出数组中只出现一次的两个数。输出的数字从小到大的顺序。
- 样例输入:
82 4 3 6 3 2 5 5
- 样例输出:
4 6
#include <iostream> #include <cstdio> using namespace std; int a[1000000]; unsigned int FindBit(int num) { int Bit = 0; while(((num&1) == 0)&&(Bit < 8*sizeof(int))) { num = num>>1; ++Bit; } return Bit; } bool IsBit1(int num,unsigned int Bit) { num = num>>Bit; return (num&1); } int main(int argc,char* argv[]) { int length; while(scanf("%d",&length) != EOF) { int index = 0; for(int i=0;i<length;++i) { scanf("%d",&a[i]); index ^= a[i]; } unsigned int Bit = FindBit(index); int num1 = 0,num2 = 0; for(int j=0;j<length;++j) { if(IsBit1(a[j],Bit)) num1 ^= a[j]; else num2 ^= a[j]; } if(num1 > num2) { int temp = num1; num1 = num2; num2 = temp; } cout<<num1<<" "<<num2<<endl; } return 0; }
0 0
- [九度oj]题目1351:数组中只出现一次的数字
- 九度OJ-题目1351:数组中只出现一次的数字
- 九度oj 数组中只出现一次的数字
- 九度OJ—题目1351:数组中只出现一次的数字(vector与数组的区别)
- 九度OJ 1351 数组中只出现一次的数字
- 九度OJ 1351 数组中只出现一次的数字 (位操作)
- 九度OJ 1351:数组中只出现一次的数字 (位运算)
- 题目1351:数组中只出现一次的数字-九度
- 九度 题目1351:数组中只出现一次的数字
- 九度 题目1351:数组中只出现一次的数字
- 【剑指offer】【九度oj】数组中只出现一次的数字
- 整形数组中只出现一次的数字(剑指Offer,九度OJ)
- 题目1351:数组中只出现一次的数字
- **题目1351:数组中只出现一次的数字
- 九度笔记之 1351:数组中只出现一次的数字
- 题目40:数组中只出现一次的数字
- 题目1351:数组中只出现一次的数字 (2014.2.16)
- 数组中只出现一次的数字
- 黑马程序员_java类加载器
- 【知其所以然】语义"陷阱"---数组和指针
- uva--10057+数学问题
- 黑马程序员_java动态代理
- HAL Series(1) Basic Structures
- [九度oj]题目1351:数组中只出现一次的数字
- POJ3295-Tautology
- javascript通过单体模式、闭包封装一次嗅探浏览器api
- XML语法规范
- 黑马程序员_java网络编程
- 数组和指针背后——内存角度
- tomcat 7 windows系统下解压缩版登录不了的解决办法
- 【Cocos2d-x3.0学习笔记 11】Schedule的使用01
- 柜位预测(一)——显示柜位曲线图