package com.interview.binarysearch;
import java.util.Arrays;
/**
* http://www.geeksforgeeks.org/count-pairs-difference-equal-k/
*/
public class CountNDistinctPairsWithDifferenceK {
public int count(int arr[],int k){
Arrays.sort(arr);
int count = 0;
for(int i=0; i < arr.length; i++){
boolean result = binarySearch(arr, i+1, arr.length-1, arr[i] + k);
if(result){
count++;
}
}
return count;
}
private boolean binarySearch(int arr[],int start,int end,int num){
if(start > end){
return false;
}
int mid = (start + end)/2;
if(arr[mid] == num){
return true;
}
else if(arr[mid] > num){
return binarySearch(arr,start,mid-1,num);
}else{
return binarySearch(arr,mid+1,end,num);
}
}
public static void main(String args[]){
CountNDistinctPairsWithDifferenceK cn = new CountNDistinctPairsWithDifferenceK();
int arr[] = {1,2,3,4,5,7,9};
System.out.print(cn.count(arr, 3));
}
}