题目描述:
一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。
输入:
每个测试案例包括两行:
第一行包含一个整数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 }

[九度][何海涛] 数组中只出现一次的数字相关推荐

  1. [九度][何海涛] 数组中出现次数超过一半的数字

    题目描述: 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字.例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}.由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2 ...

  2. 【剑指offer-Java版】40数组中只出现一次的数字

    数组中只出现一次的数字:输入一个数组,该数组中有两个数字只出现了一次,其他数字都出现了两次,求出这两个只出现了一次的数字 要求时间复杂度为O(n)空间复杂度为O(1) 考虑一个数组中只有一个数字仅仅出 ...

  3. 《剑指offer》-- 第一个只出现一次的字符、数组中只出现一次的数字、字符流中第一个不重复的字符、数组中重复的数字

    一.第一个只出现一次的字符: 1.题目: 在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写 ...

  4. [剑指offer] 数组中只出现一次的数字

    本文首发于我的个人博客:尾尾部落 题目描述 一个整型数组里除了两个数字之外,其他的数字都出现了偶数次.请写程序找出这两个只出现一次的数字. 解题思路 法一:大家都能想到的HashMap法 法二:异或法 ...

  5. 牛客题霸 [数组中只出现一次的数字] C++题解/答案

    牛客题霸 [数组中只出现一次的数字] C++题解/答案 题目描述 一个整型数组里除了两个数字之外,其他的数字都出现了两次.请写程序找出这两个只出现一次的数字. 题解: 用map来记录每个数字出现几次, ...

  6. 40:数组中只出现一次的数字

    /*** 面试题40:数组中只出现一次的数字* 一个整型数组里除了两个数字之外,其他的数字都出现了两次.请写程序找出这两个只出现一次的数字.*/ public class _40_num_one_ti ...

  7. 【难题+重点】剑指offer——面试题40:数组中只出现一次的数字

    剑指offer--面试题40:数组中只出现一次的数字 Solution1: 书中展示了很棒的思路: 关于异或的两个性质应该知道: (1) X^X = 0; (2) X^0 = X; class Sol ...

  8. 数组中只出现一次的数字

    一个整型数组里除了两个数字之外,其他的数字都出现了两次.请写程序找出这两个只出现一次的数字. 数字都出现两次,则异或肯定为0. 考虑下这个题目的简化版--数组中除一个数字只出现1次外,其它数字都成对出 ...

  9. 程序员面试题精选100题(34)-数组中只出现一次的数字[算法]

    题目:一个整型数组里除了两个数字之外,其他的数字都出现了两次.请写程序找出这两个只出现一次的数字.要求时间复杂度是O(n),空间复杂度是O(1). 分析:这是一道很新颖的关于位运算的面试题. 首先我们 ...

  10. 算法题:“找出单身狗”--找出一个数组中只出现一次的数字

    题目:一个数组中只有两个数字是出现一次,其他所有数字都出现了两次. 编写一个函数找出这两个只出现一次的数字. 解题过程以及思路:(思路在代码中以注释形式给出) //一个数组中只有两个数字是出现一次,其 ...

最新文章

  1. js 正则匹配URL,网址,带端口,带query的
  2. 弹指之间 -- Waltz
  3. 图解操作系统研发与探索教程
  4. buu RSAroll
  5. JDBC登录功能实现
  6. apscheduler -定时任务
  7. 2013年1月12日学习内容
  8. 如何提高PHP代码的质量?第二部分 单元测试
  9. 实现(手撕)遗传算法与集成学习-人工智能大作业(特征选择其实是乱选的,抄的别人的,,,)
  10. mysql 3.23_2018-3-23 13周5次课 MySQL常用操作(下)
  11. python queue get 方法_Python语言中的Queue(队列)
  12. 小白系列:LNMP搭建
  13. python logging 工具
  14. CCNA(三)-路由器
  15. ros路由器cpu占用率高的原因和解决
  16. BuBu笔记——Mybatis深入(秃头BUBu的超详细备注,一定要看哦)
  17. Spring Boot(04)自定义filter
  18. pytorch的两个函数 .detach() .detach_() 的作用和区别
  19. 联想小新15用什么C语言程序,长处更长 优点更优 联想小新Air 15 2019首测
  20. Linux下Vim的常用命令操作大全

热门文章

  1. net 调用java_NET调用Java之100-Continue的坑
  2. void main(){char str[] = “\tab\n\014\\\“;printf(“%d“,strlen(str))}
  3. Android TableLayout 表格布局
  4. git把当前修改提交合并到上一条提交如何操作
  5. Android7.1编译SDK报错解决方法总结
  6. http 回应头的闷事
  7. django通用视图(类方法)
  8. 用AjaxPro实现二级联动
  9. CSS 块状元素和内联元素
  10. 不要被C++“自动生成”所蒙骗