Maximum XOR for Each Query

MediumArrayBit ManipulationPrefix Sum

Solution

export function getMaximumXor(nums: number[], maximumBit: number): number[] {
  const n = nums.length;
  const maxXor = (1 << maximumBit) - 1;
  const arrXor = nums.reduce((prev, num) => prev ^ num, 0);
 
  const answer: number[] = [];
  let xor = arrXor;
  for (let i = n - 1; 0 <= i; i--) {
    answer.push(xor ^ maxXor);
    xor ^= nums[i];
  }
  return answer;
}