closest number
Sun Sep 22 2024 09:45:43 GMT+0000 (Coordinated Universal Time)
Saved by
@CodeXboss
#include <iostream>
#include <vector>
#include <algorithm>
#include <climits> // Include this header to use INT_MAX
using namespace std;
vector<int> closestNumbers(vector<int>& arr) {
vector<int> result;
sort(arr.begin(), arr.end()); // Step 1: Sort the array
int minDiff = INT_MAX; // Initialize minDiff to a large value
// Step 2: Find the smallest absolute difference
for (size_t i = 0; i < arr.size() - 1; ++i) {
int diff = arr[i + 1] - arr[i];
if (diff < minDiff) {
minDiff = diff;
}
}
// Step 3: Collect pairs with the smallest difference
for (size_t i = 0; i < arr.size() - 1; ++i) {
int diff = arr[i + 1] - arr[i];
if (diff == minDiff) {
result.push_back(arr[i]);
result.push_back(arr[i + 1]);
}
}
return result;
}
int main() {
int n;
cin >> n;
vector<int> arr(n);
for (int i = 0; i < n; ++i) {
cin >> arr[i];
}
vector<int> result = closestNumbers(arr);
for (int num : result) {
cout << num << " ";
}
cout << endl;
return 0;
}
content_copyCOPY
Comments