421. Maximum XOR of Two Numbers in an Array
2017-03-05 11:45
295 查看
Given a non-empty array of numbers, a0, a1, a2, … , an-1, where 0 ≤ ai < 231.
Find the maximum result of ai XOR aj, where 0 ≤ i, j < n.
Could you do this in O(n) runtime?
Example:
Input: [3, 10, 5, 25, 2, 8]
Output: 28
Explanation: The maximum result is 5 ^ 25 = 28.
Find the maximum result of ai XOR aj, where 0 ≤ i, j < n.
Could you do this in O(n) runtime?
Example:
Input: [3, 10, 5, 25, 2, 8]
Output: 28
Explanation: The maximum result is 5 ^ 25 = 28.
public class Solution { public int findMaximumXOR(int[] nums) { int max = 0; int mask = 0; for (int i = 31; i >= 0; i--) { mask |= 1 << i; HashSet<Integer> set = new HashSet<Integer>(); for (int num : nums) { set.add(num & mask); } int tmp = max | 1<<i; for (int s : set) { if(set.contains(s ^ tmp)){ max = tmp; break; } } } return max; } }
相关文章推荐
- Trie (3) -- Maximum XOR of Two Numbers in an Array
- leetcode 421. Maximum XOR of Two Numbers in an Array
- Maximum XOR of Two Numbers in an Array
- [leetcode]421. Maximum XOR of Two Numbers in an Array
- 421. Maximum XOR of Two Numbers in an Array
- [LeetCode] 421. Maximum XOR of Two Numbers in an Array(位操作)
- Maximum XOR of Two Numbers in an Array
- 421. Maximum XOR of Two Numbers in an Array
- LeetCode: 421. Maximum XOR of Two Numbers in an Array
- leetcode 421. Maximum XOR of Two Numbers in an Array
- leetcode 421. Maximum XOR of Two Numbers in an Array 最大的异或运算值 + 位运算
- [LeetCode] 421. Maximum XOR of Two Numbers in an Array(位操作)
- 421.Maximum XOR of Two Numbers in an Array 数组中异或值最大的两个数字
- 421. Maximum XOR of Two Numbers in an Array
- (LeetCode) 421. Maximum XOR of Two Numbers in an Array
- Leetcode-421. Maximum XOR of Two Numbers in an Array
- 421. Maximum XOR of Two Numbers in an Array——本质:利用trie数据结构查找
- LeetCode 421 Maximum XOR of Two Numbers in an Array 解题报告
- leetcode 421. Maximum XOR of Two Numbers in an Array
- 前缀树及应用两数异或Leetcode之 Maximum XOR of Two Numbers in an Array