在 C++ 中查詢一個具有給定差異的成對元素
考慮我們有陣列 A,它有 n 個不同的元素。我們必須從陣列 A 中找出成對的 (x, y),使得 x 和 y 之間的差值與給定的差值 d 相同。假設元素列表為 A = [10, 15,26,30,40,70],給定的差值是 30,那麼配對將為 (10, 40) 和 (30, 70)
為了解決此問題,我們假設陣列已被排序,然後從左開始,我們將採用兩個指標來指明元素,最初第一個“i”將指向第一個元素,第二個“j”將指向第二個元素。當 A[j] – A[i] 等於 n 時,然後列印配對,如果 A[j] – A[i] < n,則將 j 增加 1,否則將 i 增加 1。
示例
#include<iostream>
using namespace std;
void displayPair(int arr[], int size, int n) {
int i = 0;
int j = 1;
while (i < size && j < size) {
if (i != j && arr[j] - arr[i] == n) {
cout << "(" << arr[i] << ", " << arr[j] << ")"<<endl;
i++; j++;
}
else if (arr[j]-arr[i] < n)
j++;
else
i++;
}
}
int main() {
int arr[] = {10, 15, 26, 30, 40, 70};
int size = sizeof(arr)/sizeof(arr[0]);
int n = 30;
displayPair(arr, size, n);
}輸出
(10, 40) (40, 70)
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C #
MongoDB
MySQL
Javascript
PHP