相关疑难解决方法(0)

处理N中的M次出现

问题我是在面试时给出的.我接近解决方案,但不幸的是没有解决它.

假设我们有一个包含N个类型的序列long.并且我们确切地知道,在这个序列中,每个数字确实恰好发生n次,除了恰好出现m次的一个数字(0 < m < n).我们如何通过O(N)运算和O(1)额外内存找到该数字?

对于最简单的情况(当n = 2m = 1时),我们应该做的只是xor按顺序对每个数字执行累加.结果将等于所需的数字.但是我在试图处理任意的mn时陷入困境.

我很欣赏实际的C++解决方案.


编辑:我们先验地知道mn的实际值.

例.我们知道n = 3且m = 2.序列(N = 8)是

5 11 5 2 11 5 2 11
Run Code Online (Sandbox Code Playgroud)

在这种特殊情况下,正确的答案是2,因为它只发生了两次.

c++ arrays algorithm

21
推荐指数
2
解决办法
2133
查看次数

标签 统计

algorithm ×1

arrays ×1

c++ ×1