Not Passing test cases

import java.util.*;
public class Main {
public static List findClosestElement(int[] arr,int k,int x) {
int n=arr.length;
int cur_sum=0,pos=0;
for(int i=0;i<k;i++) {
cur_sum+=Math.abs(x-arr[i]);
}
int sum=cur_sum;
for(int i=1;i<=n-k;i++) {
cur_sum-=Math.abs(x-arr[i-1]);
cur_sum+=Math.abs(x-arr[i+k-1]);
if(cur_sum<sum) {
sum=cur_sum;
pos=i;
}
}
List answer=new ArrayList();
for(int i=0;i<k;i++) {
answer.add(arr[i+pos]);
}
return answer;

}

public static void main(String[] args) {
	// TODO Auto-generated method stub
	Scanner scn=new Scanner(System.in);
	int t=scn.nextInt();
	int[] arr=new int[t];
	for(int i=0;i<t;i++) arr[i]=scn.nextInt(); 
	int k=scn.nextInt();
	int x=scn.nextInt();
	System.out.println(findClosestElement(arr,k,x));
}

}

Hey @rajatchaturvedi1995
Please share you code in IDE

https://ide.geeksforgeeks.org/s6layTOyoO

Hey @rajatchaturvedi1995
Print like this in main rather than printing directly(extra char in direct printing)

		List<Integer>answer =findClosestElement(arr,k,x);
		for (int i = 0; i < answer.size(); i++) 
            System.out.print(answer.get(i) + " "); 
		}

If this resolves your query then please hit a like and mark it as resolved :slight_smile:

1 Like