尽快找出N个数组中只出现过一次的数,其他数随意次数出现

Fu4ng 2017-06-23 03:27:50
期末考试的时候出了一道找出两个数组中只出现过一次的数。
我把这个问题扩大了一下,有什么方法可以找出尽快找出N个数组中只出现过一次的数。我百度的时候都查到的是百度的一道面试题,跟我想得不一样。
我自己想了一两种方法都没有成功。
求解答,
...全文
662 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
hongss 2018-11-06
  • 打赏
  • 举报
回复
引用 7 楼 zdhsoft 的回复:
[quote=引用 5 楼 junloin 的回复:]
[quote=引用 4 楼 zdhsoft 的回复:]
这是小学生的问题啊~

。。。我就是小学生的水平啊,前辈有什么思路吗。除了把N个数组串成一个。[/quote]
汉!你可以用Map <int,int> 第一个是你的那个数,第二个是计数 ,所有的数据过了一遍后,再找计数为1的就可以了[/quote]

这个不错
draculamx 2018-10-30
  • 打赏
  • 举报
回复
目前想到的就是两层循环解决问题,还没想到比这个更快的。。。
draculamx 2018-10-30
  • 打赏
  • 举报
回复
引用 3 楼 u010165006 的回复:
把N个数组串成一个新数组,快速排序,扫描数组通过相邻元素(一个元素和前后元素都不同)就可以判断只出现一次。

用这个方法的话,会碰到一个极端情况吧,就是相同的数字,连续出现很多个,比如:
1,1,1,1,1,1,1,2,1,1,1,1,1,1,1
这种的话,检查相邻的数字就没什么意义了。。
  • 打赏
  • 举报
回复
数组很大的话,可以用位图法,需要512MB的额外空间
qq_40992584 2018-10-27
  • 打赏
  • 举报
回复
如果知道数的范围,给用桶吧,遍历所有数组,来一个数对应的位置的值加1,最后遍历这些桶,如果值为1就说明只出现了一次
过客猫2022 2017-07-28
  • 打赏
  • 举报
回复
引用 5 楼 junloin 的回复:
[quote=引用 4 楼 zdhsoft 的回复:] 这是小学生的问题啊~
。。。我就是小学生的水平啊,前辈有什么思路吗。除了把N个数组串成一个。[/quote] 汉!你可以用Map <int,int> 第一个是你的那个数,第二个是计数 ,所有的数据过了一遍后,再找计数为1的就可以了
Fu4ng 2017-07-26
  • 打赏
  • 举报
回复
引用 4 楼 zdhsoft 的回复:
这是小学生的问题啊~
。。。我就是小学生的水平啊,前辈有什么思路吗。除了把N个数组串成一个。
过客猫2022 2017-07-26
  • 打赏
  • 举报
回复
这是小学生的问题啊~
hkyouyuanren 2017-07-26
  • 打赏
  • 举报
回复
memcpy
ooolinux 2017-06-24
  • 打赏
  • 举报
回复
把N个数组串成一个新数组,快速排序,扫描数组通过相邻元素(一个元素和前后元素都不同)就可以判断只出现一次。
Fu4ng 2017-06-23
  • 打赏
  • 举报
回复
有什么思路吗
ooolinux 2017-06-23
  • 打赏
  • 举报
回复
笨办法有,尽快的不知道。

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧