使用 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