这种贪婪的方法是什么?

时间:2014-11-15 11:53:10

标签: algorithm time-complexity greedy

我们有一个n个数字的数组,除了一个数字之外,所有数字都在这个数组中重复了很多次;我们想要找到重复奇数次的数字。

我认为最优算法的时间复杂度优于O( n Log(n) ),因为我们可以对数组进行排序然后迭代它,当我们看到一个新数字时,我们增加一个累加器,当我们再看到它时,我们减少累加器最后,累加器不为零的每个成员都被重复了很多次。

另外我认为它没有比O(n)更好的算法,因为如果它有,那么它必须是O( Log(n) ),为此我们需要一个有序数组,但我们的初始数组不是。

1 个答案:

答案 0 :(得分:5)

如果数字是整数,则可以只计算数组中的所有值。结果是重复奇数次数(这是正确的,因为任何x xor x = 0都是x)。该算法的复杂性显然是O(n)