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

Block vs Inline Elements In HTML

  Block: Block element always start in New Line  Block element always start in new line occupy complete width available  Example: h2, p, div Inline Element: They do not start in new line occuply width as much required  Example: img, anchor a,span There are no different between div and span, only difference is div is block element and span is Inline, it will help you to group your content or elements

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>

Find Unique Number in Array Java , XOR

 Question:  WAP to find unique number in Array Java package aRray ; import java . util .*; public class practicalArray { public static void main ( String [] args ) { Scanner scan = new Scanner ( System . in ) ; // Step 1: Input size of the array from the user int size = scan . nextInt () ; // Step 2: Create an integer array of the specified size int [] arr = new int [ size ] ; // Step 3: Initialize 'res' with the first element of the array int res = arr [ 0 ] ; // Step 4: Loop to read array elements and find the unique number for ( int i = 1 ; i < size ; i ++ ) { // Read an integer from the user and store it in the array arr [ i ] = scan . nextInt () ; // Step 5: Use XOR (^) operation to find the unique number res = res ^ arr [ i ] ; } // Step 6: Print the unique number System . out . print...