C ++中的最小XOR值对

问题陈述

给定一个整数数组。在具有最小XOR值的数组中找到对

示例

If arr[] = {10, 20, 30, 40} then minimum value pair will be 20

and 30 as (20 ^ 30) = 10.

(10 ^ 20) = 30

(10 ^ 30) = 20

(10 ^ 40) = 34

(20 ^ 30) = 10

(20 ^ 40) = 60

(30 ^ 40) = 54

算法

  • 生成给定数组的所有对并计算其值的XOR

  • 返回最小XOR值

示例

#include <bits/stdc++.h>

using namespace std;

int getMinValue(int *arr, int n) {

   int minValue = INT_MAX;

   for (int i = 0; i < n; ++i) {

      for (int j = i + 1; j < n; ++j) {

         minValue = min(minValue, arr[i] ^ arr[j]);

      }

   }

   return minValue;

}

int main() {

   int arr[] = {10, 20, 30, 40};

   int n = sizeof(arr) / sizeof(arr[0]);

   cout << "Minimum value = " << getMinValue(arr, n) << endl;

   return 0;

}

当您编译并执行上述程序时。它产生以下输出-

输出结果

Minimum value = 10

以上是 C ++中的最小XOR值对 的全部内容, 来源链接: utcz.com/z/316703.html

回到顶部