Sorting is useful as the first step in many different tasks. The most common task is to make finding things easier, but there are other uses as well. In this case, it will make it easier to determine which pair or pairs of elements have the smallest absolute difference between them.
Example
arr=[5,2,3,4,1]
Sorted,arr’=[1,2,3,4,5] . Several pairs have the minimum difference of 1:[(1,2),(2,3),(3,4),(4,5)} . Return the array [1,2,2,3,3,4,4,5].
Note
As shown in the example, pairs may overlap.
Given a list of unsorted integers,arr , find the pair of elements that have the smallest absolute difference between them. If there are multiple pairs, find them all.
Function Description
Complete the closestNumbers function in the editor below.
closestNumbers has the following parameter(s):
- int arr[n]: an array of integers
Returns
– int[]: an array of integers as described
Input Format
The first line contains a single integer n, the length of arr.
The second line contains n space-separated integers, arr[i].
Constraints
- 2<=n<=200000
- -10^7<=arr[i]<=10^7
- All a[i] are unique in arr.
Output Format
Sample Input 0
10 -20 -3916237 -357920 -3620601 7374819 -7330761 30 6246457 -6461594 266854
Sample Output 0
-20 30
Explanation 0
(30) – (-20) = 50, which is the smallest difference.
Sample Input 1
12 -20 -3916237 -357920 -3620601 7374819 -7330761 30 6246457 -6461594 266854 -520 -470
Sample Output 1
-520 -470 -20 30
Explanation 1
(-470) – (-520) = 30 – (-20) = 50, which is the smallest difference.
Closest Numbers HackerRank Solution in C
int n, *arr; cin>>n; arr = new int[n]; for (int i = 0 ; i < n ; i++) cin>>arr[i]; sort(arr,arr+n); if (n%2 == 1) cout<<arr[(n-1)/2]<<endl; else cout<<(arr[n/2 - 1]+arr[n/2])/2<<endl; return 0; }
Find the Median HackerRank Solution in Java
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; public class Solution { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine()); String[] s = br.readLine().split(" "); int[] a = new int[n]; for (int i = 0; i < n; i++) { a[i] = Integer.parseInt(s[i]); } Arrays.sort(a); System.out.println(a[n/2]); } }
Find the Median HackerRank Solution in Python
# Enter your code here. Read input from STDIN. Print output to STDOUT N=raw_input() N=int(N) numbers=[] numbersInput=raw_input() for num in numbersInput.split(): numbers.append(int(num)) numbers.sort() print numbers[len(numbers)/2]
Find the Median HackerRank Solution in C#
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication2 { class Program { static void Main(string[] args) { int n = int.Parse( Console.ReadLine()); int ans = Console.ReadLine().Trim().Split(' ').Select(int.Parse).OrderBy(i => i).Skip(n / 2).First(); Console.WriteLine(ans); } } }
Attempt Find the Median Hackerrank Challenge
Link – https://www.hackerrank.com/challenges/find-the-median/
Next HackerRank Challenge Solution
Link – https://exploringbits.com/determining-dna-health-hackerrank-solution/
Aayush Kumar Gupta is the founder and creator of ExploringBits, a website dedicated to providing useful content for people passionate about Engineering and Technology. Aayush has completed his Bachelor of Technology (Computer Science & Engineering) from 2018-2022. From July 2022, Aayush has been working as a full-time Devops Engineer.