给定一个整数数组。数组中的每个数字重复奇数次,但只有 1 个数字重复偶数次。找到那个数字。
我在想一个 HashMap ,每个元素的计数。它需要 O(n) 空间。有没有更好的办法?
最佳答案
Hash-map 很好,但您需要存储的只是每个元素的计数模 2。 除了 0(偶数)-count 元素外,所有这些最终都会成为 1(奇数)。
(正如 Aleks G 所说,您不需要使用算术 (count++ %2
),只需使用 xor (count ^= 0x1
);尽管任何编译器都会优化无论如何。)
关于algorithm - 找到一个重复偶数次的数字,而所有其他数字重复奇数次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7292965/