LeetCode: XOR Operation in an Array
Question
Given an integer n and an integer start.
Define an array nums where nums[i] = start + 2*i (0-indexed) and n == nums.length.
Return the bitwise XOR of all elements of nums.
Solution #1
def xor_operation(n, start)
(0..(n-1)).reduce(0) { |r, i| r ^ (start + 2 * i) }
end
Solution #2
def xor_operation(n, start)
i = 0
nums = []
Array.new(n).each_with_index { |_num, i| nums << start + (2 * i) }
loop do
start = start ^ nums[i + 1] if nums[i + 1]
i += 1
break if i > n
end
start
end
Solution #3
def xor_operation(n, start)
i = 0
j = 0
ans = start
nums = []
while i < n
nums[i] = start + (2 * i)
i += 1
end
while j < nums.length-1
ans = ans ^ nums[j + 1] if nums[j + 1]
j += 1
end
ans
end
Comments