Re: [闲聊] 每日leetcode

楼主: JIWP (JIWP)   2024-09-13 22:30:19
1310. XOR Queries of a Subarray
arr是一个正数矩阵
queries则是2D整数矩阵,其中queries[i]={left_i,right_i}
对每一个queries[i]请计算arr[left_i] xor arr[left_i+1] xor...xor arr[right_i]
请回传最终结果
思路:
假设arr有n个元素
从arr[0]一直xor到arr[n-1]
并用一个prefix sum矩阵纪录,prefix_sum[i]=arr[0] xor arr[1] xor ... xor arr[i]
如果要计算arr[i]~arr[j]的xor值就只要prefix_sum[j] ^ prefix_sum[i-1]就好
golang code:
func xorQueries(arr []int, queries [][]int) []int {
n, m := len(arr), len(queries)
xor_arr, res := make([]int, n+1), make([]int, m)
tmp := 0
for key, val := range arr {
tmp ^= val
xor_arr[key+1] = tmp
}
for key, val := range queries {
res[key] = xor_arr[val[0]] ^ xor_arr[val[1]+1]
}
return res
}
作者: Che31128 (justjoke)   2024-09-13 22:32:00
大师
作者: sustainer123 (caster)   2024-09-13 22:33:00
大师

Links booklink

Contact Us: admin [ a t ] ucptt.com