题目描述
blablabla
样例
blablabla
算法1
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla
算法2
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla
import java.util.Scanner;
class Main{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] A = new int[n];
for (int i = 0; i < n; i++) A[i] = sc.nextInt();
Node root = new Node();
for (int i : A) add(i, root);
int res = 0;
for (int i : A) {
res = Math.max(res, find(i, root));
}
System.out.print(res);
}
private static void add(int num, Node root) {
for (int i = 31; i >= 0; i–) {
int x = (1 << i & num) != 0? 1 : 0;
if (root.nodes[x] == null) root.nodes[x] = new Node();
root = root.nodes[x];
}
}
private static int find(int num, Node root) {
int res = 0;
for (int i = 31; i >= 0; i--) {
int x = (1 << i & num) != 0? 1 : 0;
int temp = x == 1 ? 0 : 1;
if (root.nodes[temp] != null) {
res ^= 1 << i;
root = root.nodes[temp];
} else {
root = root.nodes[x];
}
}
return res;
}
}
class Node{
Node[] nodes = new Node[2];
}