链接:https://leetcode-cn.com/problems/xor-queries-of-a-subarray/
先计算异或前缀和,这样查询时就可以在
O
(
1
)
O(1)
O(1)时间复杂度得出答案。
C++代码:
class Solution {
public:
vector<int> xorQueries(vector<int>& arr, vector<vector<int>>& queries) {
vector<int> x(arr.size()+1,0);
for(int i = 1;i<=arr.size();i++)
x[i] = x[i-1] ^ arr[i-1];
vector<int> result(queries.size());
for(int i = 0;i<queries.size();i++)
{
result[i] = x[queries[i][1]+1] ^ x[queries[i][0]];
}
return result;
}
};