【发布时间】:2012-02-12 19:04:42
【问题描述】:
这是一道面试题。
给定一个整数数组,找出数组中出现偶数频率的单个整数值。所有整数都是正数。所有其他数字出现奇数频率。数组的最大个数可以是 INT_MAX。
例如,[2, 8, 6, 2] 应该返回 2。
如果你能找到更好的解决方案,例如O(1)空间,O(n)时间,可以修改原始数组。
我知道如何通过哈希表(遍历和计数频率)来解决它。是O(n)时间和空间。
是否可以通过 O(1) 空间或更好的时间来解决它?
【问题讨论】:
-
你不能比检查每个元素至少一次(平均)做得更好,所以你不会超过 O(n) 时间。
-
您甚至不必计算实际频率,只需计算模 2 的频率。;)
-
是否有要超越的目标,或者这是一个“你能做到的最好的事情”的问题?
-
可以修改原始数组吗?数字有界限吗?
标签: arrays algorithm data-structures integer