BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / acm-icpc / #90484同步于 2016/7/20
该镜像源已超过 30 天没有更新,可能在源站已被删除。
ACM_ICPC机器人发帖

1000个数范围[0,999],有2个相同的数,求这个数(已解决)

apig
2016/7/20镜像同步63 回复
要考虑空间复杂度时间复杂度, 我思路是设数组中设定重复2次的数字为a,未出现的数字为b 然后整个数组异或再和0~999异或得到 a^b= x, 由数组求和再减去0~999的求和得到 a - b = y, 然后我解不出来了TAT 不知道思路对不对
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
jh1机器人#1 · 2016/7/20
https://bbs.byr.cn/#!article/Java/51260 类似第3题,你的更简单一些,只重复两次 如果题目要求是数组a[1001], a[i]的范围在[0,999]之间,只有一个数重复两次,那么的你的思路是对的,异或可以,求和也可以 如果题目要求的数组a[n],n!=1001,只有一个数重复两次,那么存在两种情况 n < 1001, 可能[0, 999]中的某些数不存在,那么这种方法就不ok, 可以使用map统计次数,只有次数>1就返回这个数 n > 1001, 这种情况必定存在有[0, 999]存在两个以上的数重复两次,不符合题意
liyi5133机器人#2 · 2016/7/20
1000个数本就不多,所以时间复杂度和空间复杂度到底啥要求呢?不让用额外空间?O(n)? 【 在 apig 的大作中提到: 】 : 要考虑空间复杂度时间复杂度, : 我思路是设数组中设定重复2次的数字为a,未出现的数字为b : 然后整个数组异或再和0~999异或得到 a^b= x, : ...................
apig机器人#3 · 2016/7/20
【 在 jh1 的大作中提到: 】 : https://bbs.byr.cn/#!article/Java/51260 : 类似第3题,你的更简单一些,只重复两次 : 如果题目要求是数组a[1001], a[i]的范围在[0,999]之间,只有一个数重复两次,那么的你的思路是对的,异或可以,求和也可以 : ................... 题目意思应该是 1000个数 [0,999] 有一个出现两次, 有一个没出现, 其他只出现一次 我最后拿到的两个条件我解不出来
jh1机器人#4 · 2016/7/20
那就不能用异或 或者 求和来处理了,可以用map统计次数 或者 直接数组统计次数 或者 直接用位bit统计次数 【 在 apig 的大作中提到: 】 : : 题目意思应该是 1000个数 [0,999] 有一个出现两次, 有一个没出现, 其他只出现一次 : 我最后拿到的两个条件我解不出来
apig机器人#5 · 2016/7/20
【 在 liyi5133 的大作中提到: 】 : 1000个数本就不多,所以时间复杂度和空间复杂度到底啥要求呢?不让用额外空间?O(n)? : 我是一个for 得到 a^b = x a - b = y 我解不出a b 不考虑空间的话一个boolean[1000]? 这种当笔试题好像太凑数了...
apig机器人#6 · 2016/7/20
【 在 liyi5133 的大作中提到: 】 : [md] : 如果是和1000比的话,我知道一种更少的。 : 以前有道题目是一串数,每个出现3次,只有一个出现1次,找出这个数。 : ................... 敲的好快 -0- 一串数组,其他数重复出现m次,只有一个数出现n次,求这个数(m奇数, m>n) 确实有点像 那种的话都得造m进制数,画状态图简化然后来吧 这题m<n 且规定了数范围 可能我直接绕进去怎么都想用位运算搞不定了 可能你的解法是对的
liyi5133机器人#7 · 2016/7/20
我后来发现个问题,如果少的那个数和多的那个数有部分位数相同,那么这部分就抵消掉了,这种方法找不回来。 【 在 apig 的大作中提到: 】 : : 敲的好快 -0- : 一串数组,其他数重复出现m次,只有一个数出现n次,求这个数(m奇数, m>n) : ...................
Gewter机器人#8 · 2016/7/20
整个数组怎么异或?
Iluvatar机器人#9 · 2016/7/20
不用异或,用平方和 然后就能算出b^2 - a^2 然后解方程 【 在 apig 的大作中提到: 】 : 要考虑空间复杂度时间复杂度, : 我思路是设数组中设定重复2次的数字为a,未出现的数字为b : 然后整个数组异或再和0~999异或得到 a^b= x, : 由数组求和再减去0~999的求和得到 a : .........