在 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