[九度][何海涛] 数组中只出现一次的数字
- 题目描述:
- 一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。
- 输入:
-
每个测试案例包括两行:第一行包含一个整数n,表示数组大小。2<=n <= 10^6。第二行包含n个整数,表示数组元素,元素均为int。
- 输出:
- 对应每个测试案例,输出数组中只出现一次的两个数。输出的数字从小到大的顺序。
- 样例输入:
-
8 2 4 3 6 3 2 5 5
- 样例输出:
-
4 6
1 #include <iostream> 2 #include <cstdio> 3 using namespace std; 4 5 int a[1000000]; 6 7 int main() 8 { 9 int n; 10 while(scanf("%d", &n) != EOF) 11 { 12 int res = 0; 13 for(int i = 0; i < n; i++) 14 { 15 scanf("%d", &a[i]); 16 res ^= a[i]; 17 } 18 19 int mask = 1; 20 while((mask & res) == 0) 21 mask = mask << 1; 22 23 int num1 = 0; 24 int num2 = 0; 25 for(int i = 0; i < n; i++) 26 if ((a[i] & mask) == 0) 27 num1 ^= a[i]; 28 else 29 num2 ^= a[i]; 30 31 if (num1 > num2) 32 { 33 int t = num1; 34 num1 = num2; 35 num2 = t; 36 } 37 38 cout << num1 << ' ' << num2 << endl; 39 } 40 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】