LeetCode题解1310. 子数组异或查询

有一个正整数数组 arr,现给你一个对应的查询数组 queries,其中 queries[i] = [Li, Ri]。

对于每个查询 i,请你计算从 Li 到 Ri 的 XOR 值(即 arr[Li] xor arr[Li+1] xor ... xor arr[Ri])作为本次查询的结果。

并返回一个包含给定查询 queries 所有结果的数组。

 

示例 1:

输入:arr = [1,3,4,8], queries = [[0,1],[1,2],[0,3],[3,3]]

输出:[2,7,14,8]

解释:

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

1 = 0001

3 = 0011

4 = 0100

8 = 1000

查询的 XOR 值为:

[0,1] = 1 xor 3 = 2

[1,2] = 3 xor 4 = 7

[0,3] = 1 xor 3 xor 4 xor 8 = 14

[3,3] = 8

示例 2:

输入:arr = [4,8,2,10], queries = [[2,3],[1,3],[0,0],[0,3]]

输出:[8,0,4,4]

 

提示:

1 <= arr.length <= 3 * 10^4

1 <= arr[i] <= 10^9

1 <= queries.length <= 3 * 10^4

queries[i].length == 2

0 <= queries[i][0] <= queries[i][1] < arr.length

来源:力扣(LeetCode)

链接:https://leetcode-cn.com/problems/xor-queries-of-a-subarray

著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

题解:## 解法一(超时法)
Python Code:

```python
class Solution:
def xorQueries(self, arr: List[int], queries: List[List[int]]) -> List[int]:
\t\tres = []
for (L, R) in queries:
i = L
xor = 0
while i <= R:
xor ^= arr[i]
i += 1
res.append(xor)
return res
```
## 解法二(前缀表达式)

Python Code:

```python
class Solution:
def xorQueries(self, arr: List[int], queries: List[List[int]]) -> List[int]:
\t\tpre = [0]
res = []
for i in range(len(arr)):
pre.append(pre[i] ^ arr[i])
for (L, R) in queries:
res.append(pre[L] ^ pre[R + 1])
return res
```

LeetCode题解1310.xor-queries-of-a-subarray

题目地址(1310. 子数组异或查询) https://leetcode-cn.com/problems/xor-queries-of-a-subarray 题目描述 有一个正整数数组 arr,现给你一个对应的查询数组 queries,其中 queries[i] = [Li, Ri]。 对于每个查询 i,请你计算从 Li 到 Ri 的 XOR 值(即 arr…

LeetCode题解计算机为什么是基于二进制的?

可以是三进制么?二进制有什么好处?题解:为什么叫电子计算机?算盘应该没有二进制

LeetCode题解深度优先遍历和回溯的关系?

深度优先遍历的范围更大还是回溯的范围更大?为什么?题解:我的理解是:dfs是回溯思想的一种体现- 回溯:是在整个搜索空间中搜索出可行解,在搜索过程中不断剪枝回退,这是回溯的思想,这个搜索空间并没有限制于特定的数据结构。- dfs:dfs是指特定的数据结构中如图,树(特殊的图)中搜索答案,范围限制在了特定的数据结构。个人拙见。

LeetCode题解盲人买袜子。

他们都各自买了两对黑袜和两对白袜,八对袜子的布质、大小完全相同,而每对袜子都有一张商标纸连着。两位盲人不小心将八对袜子混在一起。他们每人怎样才能取回黑袜和白袜各两对呢?题解:暴力破解, 把袜子都拆开 一人一只 哈哈

LeetCode题解10个小球,随机分到12个盒子里,求恰好10个盒子都为空的概率。

10个小球,随机分到12个盒子里,求恰好10个盒子都为空的概率。要求用程序模拟十万次,暴力求出该概率来自:字节跳动 算法工程师一面的第一题 (3月30日,60分钟,牛客网视频面)https://www.nowcoder.com/discuss/395924