
解题思路
利用 与或的 特性 A ^ A = 0, B ^ 0 = B 的特性
假设数组现在的元素 是 [A, B, C, D, E]
我们想计算 D, E 的结果,那可以用 map[E] ^ map[C] = A^B^C^D^E ^ A^B^C = A^A^B^B^C^C^D^E = 0^0^0^D^E = D ^ E
class Solution:
def xorQueries(self, arr: List[int], queries: List[List[int]]) -> List[int]:
total = [0]
for i in range(len(arr)):
total.append(total[-1] ^ arr[i])
xor = []
for start,end in queries:
xor.append(total[start] ^ total[end+1])
return xor
本文介绍了一种利用异或运算解决数组查询问题的方法。通过预处理数组得到累积异或值,进而快速计算任意区间内元素的异或结果。此算法适用于求解特定类型的区间查询问题。
304

被折叠的 条评论
为什么被折叠?



