首页 > 试题广场 >

数组中值出现了一次的数字

[编程题]数组中值出现了一次的数字
  • 热度指数:2279 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定一个数字arr,其中只有有两个数字出现了奇数次,其它数字都出现了偶数次,按照从小到大顺序输出这两个数。

输入描述:
输入包含两行,第一行一个整数n,代表数组arr的长度,第二行n个整数,代表数组arr,arr[i]为32位整数。


输出描述:
输出出现奇数次的两个数,按照从小到大的顺序。
示例1

输入

4
1 1 2 3

输出

2 3
示例2

输入

6
11 22 11 23 23 45

输出

22 45

备注:
时间复杂度,额外空间复杂度
头像 总之就是非常可爱
发表于 2022-02-20 20:24:05
#include<bits/stdc++.h> using namespace std; int main(){     int n;     cin>>n;     int *arr=new int[n]; &nb 展开全文
头像 字节内推小跟班
发表于 2020-04-30 16:21:26
#include <iostream> #include <algorithm> using namespace std; //思路:使用异或的特性 X ^ X = 0, 0& 展开全文
头像 whoway
发表于 2020-07-27 21:02:13
思路 1)首先,数组元素为32位的整型,限制了不能开1<<31-1那么大的数组进行hash2)所以只能考虑,利用位运算中,异或运算的性质 异或的特性:0 ^ X = X,X ^ X = 0 (正好和 奇,偶,对上了)1)先将所有数组中的所有数字进行异或,则最后的结果bitsum为两个出现 展开全文

问题信息

上传者:小小
难度:
12条回答 5778浏览

热门推荐

通过挑战的用户

查看代码