Minimize the maximum difference between adjacent elements in an array

You are given a non-decreasing array and an integer K. You need to remove exactly K integers from the given array such that the maximum difference between adjacent elements is minimum.

For example:
If the given array is: [2 6 7 7 10] and K = 2. We need to remove A[0] = 2 and A[4] = 10, then the resultant array would become [6 7 7], where the difference between adjacent pairs are {1, 0}. Thus our answer would be 1. You can see that there would not be any better answer than 1 for this array
Input Format:
The first line of input contains a single integer T, representing the number of test cases or queries to be run. 

Then the T test cases follow.

The first line of each test case contains two space-separated integers N and K representing the length of the array and the number of integers to be removed.

The second line of each test case contains N space-separated integers denoting the elements of the given array.
Output Format:
For each test case, print the maximum difference between adjacent elements is minimum after K integers are removed, in a separate line.
Constraints:
1 ≤ T ≤ 100
3 ≤ N ≤ 1000
1 ≤ Ai ≤ 10^6
0 ≤ K ≤ N - 2

Time Limit : 1 sec 
Note:
You are not required to print the expected output, it has already been taken care of. Just implement the function.
CodingNinjas
author
2y

The first observation I had was what would I do if the first and last elements were not fixed. I was not able to solve this question completely, hence I used brute force approach(provided in above lin...read more

CodingNinjas
author
2y
Brute Force
  • Generate all the possible subsets of size N - K.
  • This is because in the final array only N - K elements would remain.
  • This can be done by doing Complete Search.
  • Now take the maximum difference...read more
CodingNinjas
author
2y
Optimal Solution
  • It can be noted that removing elements from the middle of the array would only maximise the final answer.
  • For example: If the given array is: [arr1 arr2 … arrX-1 arrX arrX+1 ... arrN]. ...read more
CodingNinjas
author
2y
Efficient Solution
  • Here, we will create a difference array, which will be an array of differences of adjacent elements of the initial array.
  • To find the answer, we just have to find the minimum element ...read more
Add answer anonymously...
Urban Company Software Developer Interview Questions
Stay ahead in your career. Get AmbitionBox app
qr-code
Helping over 1 Crore job seekers every month in choosing their right fit company
65 L+

Reviews

4 L+

Interviews

4 Cr+

Salaries

1 Cr+

Users/Month

Contribute to help millions
Get AmbitionBox app

Made with ❤️ in India. Trademarks belong to their respective owners. All rights reserved © 2024 Info Edge (India) Ltd.

Follow us
  • Youtube
  • Instagram
  • LinkedIn
  • Facebook
  • Twitter