import java.util.Arrays;
/**
* Created by Arun on 8/11/14.
*/
public class ClosestArray {
private static int[] getClosest(int num, int element, int arr[]){
int elementIndex = -1;
int closeArray [] = new int[num];
for(int i=0;i<arr.length;i++) {
if(arr[i]==element){
elementIndex = i;
}
}
for(int i=0, j=elementIndex-1, k=elementIndex+1;i<num;i++){
int diff1 = element-arr[j];
int diff2 = arr[k]-element;
if(diff1<diff2){
closeArray[i]=arr[j];
j--;
}
else if(diff1>diff2) {
closeArray[i]=arr[k];
k++;
}
else{
closeArray[i]=arr[j];
if(i<num){
i++;
closeArray[i]=arr[k];
j--;
k++;
}
else {
break;
}
}
}
return closeArray;
}
public static void main(String args[]) {
int arr[] = {12, 16, 22, 31, 35, 39, 42, 45, 48, 50, 53, 55, 56};
getClosest(4, 35, arr);
}
}
Monday, August 11, 2014
Given a sorted array arr[] and a value X, find the k closest elements to X in arr[]. Examples: Input: K = 4, X = 35 arr[] = {12, 16, 22, 30, 35, 39, 42, 45, 48, 50, 53, 55, 56} Output: 30 39 42 45
Labels:
Arrays
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment