LeetCode 1829. 每个查询的最大异或值
原题链接
中等
作者:
帅小柏
,
2021-05-04 21:03:42
,
所有人可见
,
阅读 331
/*
最大值 就是 全是1 也就是 2^m -1 .
nums[0]^…………^nums[nums.size()-1]^ k = 2^m -1
所以 k = nums[0]^…………^nums[nums.size()-1]^ (2^m -1)
(k 为 答案数组里的元素)
*/
class Solution {
public:
vector<int> getMaximumXor(vector<int>& nums, int maximumBit) {
vector<int>res;
for(int i=0,sum=0;i<nums.size();i++) {
sum^=nums[i];
res.push_back(sum^((1<<maximumBit)-1));
}
reverse(res.begin(),res.end()); // sum 的异或的个数 是一点一点的增加的 与题意相反。所以翻转数组。
return res;
}
};