421. Maximum XOR of Two Numbers in an Array (Medium) - TengnanYao/daily_leetcode GitHub Wiki

class Solution(object):
    def findMaximumXOR(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        result = mask = 0
        for i in range(31, -1, -1):
            mask |= 1 << i
            found = {num & mask for num in nums}
            start = result | 1 << i
            if any(num ^ start in found for num in found):
                result = start
        return result