使用C ++查找数组中的对数,以使它们的XOR为0。

假设我们有一个由n个元素组成的数组;我们必须在数组中找到XOR为0的对。XOR为0的对(x,y),则x = y。为了解决这个问题,我们可以对数组进行排序,然后如果两个连续的元素相同,则增加计数。如果所有元素都相同,那么最后一个计数可能不会被计数。在这种情况下,我们将检查last和first元素是否相同,如果相同,则将计数增加1。

示例

#include<iostream>

#include<algorithm>

using namespace std;

int countPairs(int arr[], int n) {

   int count = 0;

   sort(arr, arr+n);

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

      if(arr[i] == arr[i+1]){

         count++;

      }

   }

   if(arr[0] == arr[n-1])

      count++;

   return count;

}

int main() {

   int arr[] = {1, 2, 1, 2, 4};

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

   cout << "Number of pairs: " << countPairs(arr, n);

}

输出结果

Number of pairs: 2

以上是 使用C ++查找数组中的对数,以使它们的XOR为0。 的全部内容, 来源链接: utcz.com/z/343284.html

回到顶部