1 题目描述
2 解题思路
2.1 异或的性质
2.2 本体思路
比如a^b,那么就相当于(1^2^….^a-1)^(1^2&….^b)。所以我们只需要计算arr这边每个元素和之前元素的总异或结果(前缀和),遍历query的时候,直接检索+异或就可以了。
class Solution:
def xorQueries(self, arr: List[int], queries: List[List[int]]) -> List[int]:
tmp=[0]
for i in arr:
tmp.append(tmp[-1]^i)
ret=[]
for i in queries:
begin=i[0]
end=i[1]
ret.append(tmp[begin]^tmp[end+1])
return ret