Skip to main content

Find Pair With Smallest Difference Searching and Sorting .

Question: 

Given two unsorted arrays of non-negative integers, 'arr1' and 'arr2' of size 'N' and 'M', respectively. Your task is to find the pair of elements (one from each array), such that their absolute (non-negative) difference is the smallest, and return the difference.

Example :
N = 3, arr1 = [10, 20, 30]
M = 2, arr2 = [17, 15] 

The smallest difference pair is (20, 17) with an absolute difference of 3. So, the answer is 3. 

package learningJava;


public class pairSmallest {

public static int pairDifference(int arr1[], int arr2 [], int min ) {

for(int i = 0 ; i < arr1.length; i++) {

for(int j = 0 ; j < arr2.length; j++) { //iterate from 0th index to arr2 size

int difference = Math.abs(arr1[i] - arr2[j]); //difference between 2 arrays

//Math.abs is a function for get absolute value instead negative value

if(difference < min) {

min = difference; // store difference on min value

}

}

}

return min;

}


public static void main(String[] args) {

// TODO Auto-generated method stub

int arr1 [] = {10, 20, 30};

int arr2 [] = {17, 15};

int min = Integer.MAX_VALUE; //Initialize min to a maximum integer value, which is Integer.MAX_VALUE function

int result = pairDifference(arr1, arr2, min);

System.out.println(result);

}

}



Dry run -----------------


Input:


arr1: [10, 20, 30]     (this is array input)

arr2: [17, 15]     (this is second array input)

min: Initialized to Integer.MAX_VALUE (2147483647)

.Integer.MAX_VALUE is a constant in Java that represents the maximum value that can be held by a 32-bit signed integer. It has a value of 2,147,483,647. This value is often used when you want to initialize a variable to represent the maximum possible integer value in Java.


Initialize min to a maximum integer value (Integer.MAX_VALUE).


Start the pairDifference method:


Enter the outer loop for i from 0 to 2 (arr1.length):


i = 0, arr1[i] is 10

Enter the inner loop for j from 0 to 1 (arr2.length):

j = 0, arr2[j] is 17

Calculate the absolute difference: |10 - 17| = 7

Check if 7 < min (2147483647), it is true.

Update min to 7.

j = 1, arr2[j] is 15

Calculate the absolute difference: |10 - 15| = 5

Check if 5 < min (7), it is true.

Update min to 5.

Move to the next element in arr1.

i = 1, arr1[i] is 20


Enter the inner loop for j from 0 to 1 (arr2.length):

j = 0, arr2[j] is 17

Calculate the absolute difference: |20 - 17| = 3

Check if 3 < min (5), it is true.

Update min to 3.

j = 1, arr2[j] is 15

Calculate the absolute difference: |20 - 15| = 5

Check if 5 < min (3), it is true.

Update min to 5.

Move to the next element in arr1.

i = 2, arr1[i] is 30


Enter the inner loop for j from 0 to 1 (arr2.length):

j = 0, arr2[j] is 17

Calculate the absolute difference: |30 - 17| = 13

Check if 13 < min (5), it is false.

j = 1, arr2[j] is 15

Calculate the absolute difference: |30 - 15| = 15

Check if 15 < min (5), it is false.

Exit the loops, and the value of min is 5, which represents the minimum absolute difference between elements in the arrays.


Print the value of min, which is 5.


So, the program correctly finds and prints the minimum absolute difference, which is 5, between elements in the arrays arr1 and arr2.



Comments

Popular posts from this blog

Python Final Lectures

 Q- how to Print Hello World print("Hello World") Variables in python ------- age = 30   #variable should be intutive so that we can learn any time print(age) Note: Shift+Enter is shortcut to run command 2) ' #' this is for writing the comment in python Rules for Variables--- Variable can not be start with any number like - 1age  Number can use in between and end with variable like - age1 age2 Special characters are not allowed expect _ (underscore) like - age_my Space not allowed in variable  Python is case sensitive  Way to define Variable --- age1,age2 = 30,25  age1 = 30 age2 = 25 age1=age2=30   #if 30 age for both variable   >> Data type the type of data is basically data type Integer = age1 to age3 is basically integer   , Integer is basically full number lets check = type(age1)  #it will give u print int float=  basically decimal values Interest =  30.24 type(Interest) #answer is float Message = ...

Add CSS using external CSS

>>> U just need to create a another page and save it with the name style.css >>> and then go to link that style page with your html docs how to link your css with html page ? >>> You can find code below , it will help you to link your external page with your html docs <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Divyanshu Khare || MERN Developer</title> <meta description = "description" content="Divyanshu Khare's website"> <link rel="stylesheet" type="text/css" href="style.css">   <!----------link external css page ---------> </head> <body> </body> </html>

Python

Indexing--  it will help u to fetch single character  string= "Python" string[2] # slicing process of fetching a sub-string from the given string  #sequence of charater we can fetch means more than 1 character string="Divyanshu" string[2:4+1]   #basically here number is index value #string[start_index:end+index+1] string = "Hunny"   #indexing agr positive hai to left se count hoga #right se negative me string[:]  #it will give u entire string #now If i want to any characterwise index like string is Hunny and I want un only #string[start_index:end_index+1:step] string[1:4:2] #reverse your string #string[:: -1] string="Baba hunny" string[:: -1] # to convert into lowecase string="New Divyanshu" new_string=string.lower()  #new_string becase we've to create another string print(new_string) s1={1,2,3,4,5}    s2={3,2,8,67,85} s3=s1.union(s2) s3   #isme add hota hai whole value lekin common value update nhi hongi #intersection - ...