Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ค้นหาความแตกต่างขั้นต่ำระหว่างสององค์ประกอบใน C++


สมมติว่าเรามีอาร์เรย์ของ 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