在 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
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP