Developers at Amazon are working on a new algorithm using the Bitwise XOR operation.
Given an array arr
of even length n
, Developers can perform an operation on a given array which is defined below as many times as necessary:
L
and R
, where 0 ≤ L ≤ R < N
.x
be the bitwise XOR of all elements of the subarray represented by indices L
and R
of the given array.x
.
Given an integer array arr[]
, find the minimum number of elements of the required to make all operations given array equal to zero.
Note: Bitwise XOR for an array of numbers is determined by counting each bit position across all numbers in the array. If the total count of set bits at a bit-position is odd, the resulting bit in output is set to 1. Otherwise, the resulting bit is set to 0..
Function Description
Complete the function getMinMoves
in the editor below. getMinMoves
has the following parameter(s):
int arr[n]
: the array
Returns
int
: the minimum number of moves to make all elements of the array equal to zero
𓇼 ⋆.˚All Credit Goes to Spike!𓆝 𓆡⋆.˚ 𓇼
Example 1:
Input: arr = [0, 2, 2, 0]
Output: 1
Explanation:Choose
L = 1
andR = 2
. This corresponds to the subarray[2, 2]
. The value ofx
for[2, 2]
is0
. We replace the elements with0
making all elements0
. Hence, the minimum number of operations required is1
.
Example 2:
Input: arr = [0, 2, 3, 0, 2]
Output: 2
Explanation:This example could be invalid given that the problem statement saying the input arr len is supposed to be even..
n is supposed to be even
0 ≤ arr[i] < 2^20

input:
output: