मान लीजिए कि हमारे पास n तत्वों की एक सरणी है जिसे A कहा जाता है। हमें उस सरणी में किन्हीं दो तत्वों के बीच न्यूनतम अंतर ज्ञात करना होगा। मान लीजिए A =[30, 5, 20, 9], तो परिणाम 4 होगा। यह तत्वों 5 और 9 की न्यूनतम दूरी है।
इस समस्या को हल करने के लिए, हमें इन चरणों का पालन करना होगा -
-
सरणी को घटते क्रम में क्रमबद्ध करें
-
अंतर को अनंत के रूप में प्रारंभ करें
-
क्रमबद्ध सरणी में सभी आसन्न युग्मों की तुलना करें और कम से कम एक का ट्रैक रखें
उदाहरण
#include<iostream>
#include<algorithm>
using namespace std;
int getMinimumDifference(int a[], int n) {
sort(a, a+n);
int min_diff = INT_MAX;
for (int i=0; i<n-1; i++)
if (a[i+1] - a[i] < min_diff)
min_diff = a[i+1] - a[i];
return min_diff;
}
int main() {
int arr[] = {30, 5, 20, 9};
int n = sizeof(arr)/sizeof(arr[0]);
cout << "Minimum difference between two elements is: " << getMinimumDifference(arr, n);
} आउटपुट
Minimum difference between two elements is: 4