[英]What is the greedy approach for this?
我们有一个由n
数字组成的数组,除一个数字外,所有其他数字在该数组中均被重复了偶数次。 我们想找到重复次数为奇数的数字。
我认为最佳算法的时间复杂度比O( n Log(n) )
因为我们可以对数组进行排序然后对其进行迭代,并且每当我们看到一个新的数字时,我们都会增加一个累加器,当我们再次看到它时,我们会减少累加器最后,累加器不为零的每个成员都重复了奇数次。
我也认为它没有比O(n)
更好的算法,因为如果有,那么它必须是O( Log(n) )
,为此,我们需要一个排序数组,但我们的初始数组不是。
如果数字是整数,则可以对数组中的所有值进行异或。 结果是重复的次数是奇数次(这是正确的,因为x xor x = 0
对于任何x
)。 该算法的复杂度显然是O(n)
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.