第一次發文
如果有那裡不妥當請告知
最近在LEETCODE刷提 遇到一題求 list 裡面任意兩數字XOR最大值
題目連結在這邊
https://goo.gl/HPH4Sm
這題最快的解答是
class Solution:
def findMaximumXOR(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
ans = 0
for bit in range(31, -1, -1) :
ans = (ans << 1) + 1
pre = set()
for n in nums :
p = (n >> bit) & ans
if p in pre : #1
break #2
pre.add(ans - p) #3
else : #4
ans -= 1
return ans
我的問題在我標#1-4的地方
我不太明白這邊的if else statement 怎麼運作的(特別是#4)
一開始我以為是當if p not in pre:
就會直接跳到#4
但是好像不太對
請問有人可以跟我說明一下嗎?
非常感謝!