var findMaximumXOR = function(nums) { const HIGH_BIT = 30; let x = 0; for(let i=HIGH_BIT;i>=0;i--){ let seen = new Set(); for(let num of nums){ seen.add(num>>i); } let xNext = 2*x+1; let found = false; for(let num of nums){ if(seen.has(xNext^(num>>i))){ found = true; break; } } if(found){ x = xNext; }else{ x = xNext - 1; } } return x; } let nums = [3,10,5,25,2,8] console.log(nums, findMaximumXOR(nums)); nums = [0] console.log(nums, findMaximumXOR(nums)); nums = [2,4] console.log(nums, findMaximumXOR(nums)); nums = [8,10,2] console.log(nums, findMaximumXOR(nums)); nums = [14,70,53,83,49,91,36,80,92,51,66,70] console.log(nums, findMaximumXOR(nums));
示例 1:
原文:https://www.cnblogs.com/yanjianjiang/p/14776212.html