leetcode题目(2)|给你代码( 四 )


queries = [[01
[12
[03
[33

输出:[27148

解释:

数组中元素的二进制表示形式是:

1=0001

3=0011

4=0100

8=1000

查询的XOR值为:

[01
=1xor3=2

[12
=3xor4=7

[03
=1xor3xor4xor8=14

[33
=8

这题一开始思路是遍历queries , 然后根据其中的数值遍历arr , 然后累计异或 。 这样应该会超时 , 我也没去试 。

之后我根据异或的规律 , 先遍历arr 。 累异或每次遇到的数值 , 每次把得到的数值放进新数组中 。 根据这个新数组每项的数值 , 我实际就可以通过一定的运算得到所谓的查询结果 。 例如在例子中的[12

推荐阅读