欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【Leetcode】1310. 子数组异或查询【每日一题系列20210512】

程序员文章站 2024-03-01 16:57:40
...

【Leetcode】1310. 子数组异或查询【每日一题系列20210512】

解题思路
利用 与或的 特性 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

 

相关标签: 算法题 leetcode