使用 C++ 查找一个数组中异或为 0 的对数。
假设我们有一个包含 n 个元素的数组;我们必须在数组中找到几对元素,其异或值将为 0。异或为 0 的对 (x, y),则 x = y。要解决此问题,我们可以对数组排序,然后如果两个连续元素相同,则增加计数。如果所有元素都相同,则可能不会计算最后一个计数。在这种情况下,我们将检查最后一个元素和第一个元素是否相同,如果相同,则将计数增加 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
广告
数据结构
联网
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP