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

Excel For Data Analysis

 sum = Add numbers, it is basically sumission  =SUM(number1, [number2], ...) Example: =SUM(A1:A7)  ⚡ Tips: You can use AutoSum for quick addition: Select a cell → click Home → AutoSum (Σ) → press Enter . Shortcut key: Alt + = (automatically inserts =SUM() ). Min = TO FIND MINIMUM VALUE  =MIN(A1:A12)  max = TO FIND MAXIMUM VALUE =MAX(A1:A13)  Right  ExamPle: =RIGHT(E2,10)  basically mere pas number hai 91 country code ke sath, main chahta hu 91 code ke bad right se 10 numbers mujhe nikal ke aa jaye yaha E2 mera column number hai and 10 jo mujhe chahiye right se Cases: किसी product code ke last digits निकालने के लिए  किसी date ya year ke last 2 digits निकालने के लिए किसी naam ke last letters निकालने के लिए Note: if I want to paste horizontally number then will use 'paste ke option me transpose left  == left se digits extract krne ke liye will use this  =LEFT(E2,2)   E2 IS CELL AND 2 IS DIG...

Statistics Data Science

  Types of Data: - Majorly deal with 2 types of data : 1) Numberical Data[continuos data] ex: age, salary, height                                                             Objective: Quantative Study                                                              2) Categorical Data[Dispreet Data]: ex: Gender, City etc                                                ...

Understanding Operators and Expressions in Programming C (Type Casting and Operators) || Programming C Notes Unit 002

Understanding Operators and Expressions in C Question : What is operators on Programming C ? Ans: Operators in C programming are symbols that are used to perform operations on operands. These operations can include arithmetic operations, logical operations, bitwise operations, assignment operations , and more. Operators help in manipulating data and controlling the flow of a program.  DIFFERENT TYPES OF OPERATORS: 1) Arithmetic:  In C language, there are five primary arithmetic operators  Used to perform arithmetic operations such as addition, subtraction, multiplication, division, and modulus. : Addition (+) Subtraction (-) Multiplication (*) Division (/) it will provide u divide value not remainder Remainder after division (%), also known as the modulus operator. These operators perform basic mathematical operations like addition, subtraction, multiplication, division, and finding the remainder of integer division. The symbols +, -, *, and / function similarly to o...