You are given an array consisting of N N integers and integer K K. Find number of pairs that have difference value equal to K K. code example
Example 1: two elements with difference K in c++
bool diffK(int A[], int N, int K) {
sort(A, A+N);
int i = 0, j = 0;
while (i < N && j < N) {
if (A[i] == A[j] + K) return true;
else if (A[i] < A[j] + K) i++;
else j++;
}
return false;
}
Example 2: find pair in unsorted array which gives sum x
using namespace std;
bool hasArrayTwoCandidates(int A[], int arr_size,
int sum)
{
int l, r;
sort(A, A + arr_size);
l = 0;
r = arr_size - 1;
while (l < r) {
if (A[l] + A[r] == sum)
return 1;
else if (A[l] + A[r] < sum)
l++;
else
r--;
}
return 0;
}
int main()
{
int A[] = { 1, 4, 45, 6, 10, -8 };
int n = 16;
int arr_size = sizeof(A) / sizeof(A[0]);
if (hasArrayTwoCandidates(A, arr_size, n))
cout << "Array has two elements with given sum";
else
cout << "Array doesn't have two elements with given sum";
return 0;
}