给定一个无序的数组,找出数组在排序之后,相邻元素之前的最大的差值,如果数组元素个数小于2,则返回0,c++完成代码,不需要algorithm算法
时间: 2024-09-12 17:02:35 浏览: 35
当你需要找到一个未排序的整数数组中,在排序后的数组中相邻元素之间的最大差值时,可以遍历数组,同时维护两个变量:当前最小值和最大差值。以下是用C++编写的一个简单函数来解决这个问题:
```cpp
#include <iostream>
using namespace std;
int maxAdjacentDifference(int arr[], int n) {
if (n < 2) {
return 0;
}
int min_num = arr[0];
int max_diff = 0;
for (int i = 1; i < n; i++) {
// 更新最小值
min_num = min(min_num, arr[i]);
// 计算差值并更新最大差值
max_diff = max(max_diff, arr[i] - min_num);
}
return max_diff;
}
int main() {
int arr[] = {4, 2, 7, 5, 8};
int n = sizeof(arr) / sizeof(arr[0]);
cout << "Max adjacent difference: " << maxAdjacentDifference(arr, n) << endl;
return 0;
}
```
这个程序首先检查数组长度是否少于2,如果是,则直接返回0。然后它从第二个元素开始遍历,每一步都更新当前最小值和最大差值。最后返回最大差值。
阅读全文