【发布时间】:2020-12-31 06:44:28
【问题描述】:
给定一个大小为n 的数组A 和一个整数k,我们如何计算从0 到k 的每个x 的对数(A[i], A[j]) 这样i < j和A[i] XOR A[j] = x?
例如,给定数组A = [1, 2, 3]和k = 2,有
0 pairs with XOR 0
1 pair with XOR 1 (2 XOR 3)
1 pair with XOR 2 (1 XOR 3),
所以结果是[0, 1, 1]。
我有一个O(n^2) 解决方案,但我正在寻找一个更有效的解决方案。
【问题讨论】:
-
xor 2 是什么意思? k在这里的作用是什么?抱歉不明白你的问题。
-
@srv236 1 xor 3 给出 2 。 xor 2 是 1xor3 的结果。
-
而k的作用是我们需要为从0到k的每一个数字找到结果,这就是为什么输出是0 1 1
-
如果您分享当前的实现,可能有助于理解任务和问题。
-
这是对 StackOverflow 社区的滥用,因为这个问题是 HackerEarth Vimeo 全栈开发人员招聘挑战赛,有效期至 2020 年 9 月 13 日。
标签: algorithm bit-manipulation xor