找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 276|回复: 1

找出重复的数字

[复制链接]

205

主题

173

回帖

6925

积分

论坛元老

积分
6925
发表于 2013-7-2 18:56:18 | 显示全部楼层 |阅读模式
[bgcolor=#ffffff]问题:数组a[N],1至N-1这N-1个数存放在a[N]中,其中某个数重复一次。写一个函数,找出被重复的数字。时间复杂度不超过O(n)。[/bgcolor]

205

主题

173

回帖

6925

积分

论坛元老

积分
6925
 楼主| 发表于 2013-7-2 19:53:02 | 显示全部楼层
解题思路:

设数组a[n] = {2,3,2,1},2是重复数字。
把一个数组b[]初始化为"0000",对a[]访问一位在b[]上标记一位,再次访问到时查看标志位已经被置1则发现重复。空间复杂度O(n)。
遍历时,a[0]=2,令b[2]=1,"0010";a[1]=3,令b[3]=1,"0011";a[2]=2,b[2]已经==1,找到a[2]。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

果子博客
扫码关注微信公众号

Archiver|手机版|小黑屋|风叶林

GMT+8, 2026-2-1 13:55 , Processed in 0.075874 second(s), 20 queries .

Powered by 风叶林

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表