421. 数组中两个数的最大异或值
421. Maximum XOR of Two Numbers in an Array
题目描述
给定一个非空数组,数组中元素为 a0, a1, a2, … , an-1,其中 0 ≤ ai < 231。
找到 ai 和 aj 最大的异或 (XOR) 运算结果,其中 0 ≤ i,j < n。
你能在 O(n) 的时间解决这个问题吗?
每日一算法2019/7/13Day 71LeetCode421. Maximum XOR of Two Numbers in an Array
示例:
输入: [3, 10, 5, 25, 2, 8]
输出: 28
解释: 最大的结果是 5 ^ 25 = 28。
输出: 28
解释: 最大的结果是 5 ^ 25 = 28。
Java 实现
class Solution {
public int findMaximumXOR(int[] nums) {
int max = 0;
for (int i = 0; i < nums.length - 1; i++) {
for (int j = i + 1; j < nums.length; j++) {
if ((nums[i] ^ nums[j]) > max) {
max = nums[i] ^ nums[j];
}
}
}
return max;
}
}
参考资料