C ++中数组的所有三元组之间的XOR最大值
在这个问题中,我们得到了一个整数数组。我们的任务是在阵列的所有三元组之间创建XOR的最大值。
让我们举个例子来了解这个问题,
输入-数组={5,6,1,2}
输出-6
说明-
All triplets are: 5^6^1 = 2 5^6^2 = 1 5^1^2 = 6 6^1^2 = 5
为了解决这个问题,直接的方法是找到所有可能的三胞胎的异或并打印所有三胞胎的最大值。如果我们使用数组中包含大量元素的数组,这将无效。
为了找到最大的XOR,我们将首先创建一个包含所有成对元素的XOR的集合。然后,我们将找到所有对与元素之间的XOR,并找到最大XOR。
示例
该程序说明了我们解决方案的工作原理,
#include <bits/stdc++.h>
using namespace std;
int MaxTripletXor(int n, int a[]){
set<int> XORpair;
for (int i = 0; i < n; i++) {
for (int j = i; j < n; j++) {
XORpair.insert(a[i] ^ a[j]);
}
}
int maxXOR = 0;
for (auto i : XORpair) {
for (int j = 0; j < n; j++) {
maxXOR = max(maxXOR, i ^ a[j]);
}
}
return maxXOR;
}
int main(){
int matrix[] = {1, 2, 3, 5, 7};
int n = sizeof(matrix) / sizeof(matrix[0]);
cout<<"The maximum XOR sum triplets is "<<MaxTripletXor(n, matrix);
return 0;
}输出结果
The maximum XOR sum triplets is 7
热门推荐
10 医院探望朋友祝福语简短
11 毕业祝福语简短女朋友
12 春节虎年爸妈祝福语简短
13 儿童毕业祝福语 简短6
14 开工仪式横幅祝福语简短
15 孩子日常祝福语大全简短
16 清晨寄语诗句祝福语简短
17 结婚送亲认亲祝福语简短
18 虎年喝酒拜年祝福语简短