Sponsored
Sponsored
This approach involves iterating over all possible pairs of numbers in the array and calculating their XOR. We keep track of the maximum XOR value encountered during these iterations.
Though straightforward, this method is not efficient for large arrays, as it involves checking each pair of numbers.
Time Complexity: O(n^2), where n is the number of elements in the array, because it checks every pair.
Space Complexity: O(1), as it uses only a constant amount of space.
1def findMaximumXOR(nums):
2 max_xor = 0
3 for i in range(len(nums)):
4 for j in range(i, len(nums)):
5 max_xor = max(max_xor, nums[i] ^ nums[j])
6 return max_xor
7
8nums = [3, 10, 5, 25, 2, 8]
9print("Maximum XOR:", findMaximumXOR(nums))
The Python function findMaximumXOR
iterates through every pair of integers in the list nums
using two nested loops. For each pair, it computes the XOR and updates the maximum value found.
This approach makes use of a Trie data structure to efficiently maximize the XOR computation. By examining the binary representation of numbers, we can leverage the Trie to only explore branches that potentially maximize the XOR result.
The Trie helps in finding complementary patterns (bits) efficiently by using bit manipulation and path traversal.
Time Complexity: O(n * W), where n is the number of elements and W is the number of bits in the maximum number.
Space Complexity: O(n * W), for storing the Trie.
This solution utilizes a Java Trie to efficiently compute the maximal XOR value. Numbers are inserted into the Trie, and maximum XOR is achieved by selecting paths that provide maximum 'difference'.