421. Maximum XOR of Two Numbers in an Array

class Solution(object):
    def findMaximumXOR(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        max,mask=0,0
        
        for i in range(31,-1,-1): 
            mask|=(1<<i)
            prefix_set=set()
            for num in nums:
                prefix_set.add(num&mask)
            temp=max|(1<<i)
            for prefix in prefix_set:
                if temp^prefix in prefix_set:
                    max=temp
                    break
        return max
        
class Solution(object):
    def findMaximumXOR(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        answer=0
        for i in range(31,-1,-1):
            answer<<=1
            prefixes={num>>i for num in nums}
            answer+=any(answer^1^prefix in prefixes for prefix in prefixes)
        return answer
                 
             
            
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容