123456789101112131415161718 |
- func findMaximumXOR(nums []int) int {
- max, mask := 0, 0
- for i := 31; 0 <= i; i-- {
- m := make(map[int]bool)
- mask |= 1 << uint(i)
- for _, n := range nums {
- m[n&mask] = true
- }
- tmp := max | 1<<uint(i)
- for k := range m {
- if _, ok := m[tmp^k]; ok {
- max = tmp
- break
- }
- }
- }
- return max
- }
|