描述
原题在这: https://www.hackerrank.com/challenges/maximum-xor/problem
给一个数组, 和一系列query, 对每个query求出数组元素和它xor
的最大值. 数组长度和query长度都是最大100000
.
思路
brute force是O(n**2)
肯定不行. 不过最优解并不难想到, 模拟手算就行. 每来一个query, (从高位到低位)我们优先找和它这一位值相反的数, 这样xor
才最大. 用trie实现.
代码
1 | def maxXor(arr, queries): |