**Maximum XOR subarray**

--

Given an array of integers of size N find subarray with maximum xor. A subbarray is a contiguous part of array.

**Example 1:**

**Input**:

N = 4

arr[] = {1,2,3,4}

**Output:** 7

**Explanation**:

The subarray {3,4} has maximum xor

value equal to 7.

**Your Task: **

You don’t need to read input or print anything. Your task is to complete the function **maxSubarrayXOR()** which takes the array arr[], its size N** **as input parameters and returns the maximum xor of any subarray.

**Expected Time Complexity:** O(N)**Expected Auxiliary Space:** O(N)

**Constraints:**

1 <= N <= 105

1 <= arr[i] <= 105

`from functools import reduce`

def sub_lists_XOR(arr):

ans = -1

for i in range(len(arr) + 1):

for j in range(i):

ans = max(ans,reduce(lambda x, y: x ^ y, arr[j: i]))

return ans

l1 = [1, 2, 3,4]

print(sub_lists_XOR(l1))

#######--------or--------#######

def maxSubarrayXOR(arr):

N = len(arr)

ans = -1

for i in range(N):

xor = 0

for j in range(i, N):

xor = xor ^ arr[j]

ans = max(ans, xor)

return ans

l1 = [1, 2, 3,4]

print(maxSubarrayXOR(l1))