请实现一个函数,返回整型数组中的次小数的值数原型: int GetMin2( const int ar [], int cnt)
时间: 2024-10-08 18:22:47 浏览: 44
Java_int、double型数组常用操作工具类(分享)
可以创建一个名为`GetMin2`的函数,它接收两个参数:一个整型数组`ar`和数组的元素个数`cnt`。这个函数的目标是找出并返回数组中第二小的不同数值的数量。下面是一个简单的C++实现:
```cpp
#include <vector>
#include <unordered_set>
int GetMin2(const int ar[], int cnt) {
std::vector<int> distinct_elements;
for (int i = 0; i < cnt; ++i) {
if (std::find(distinct_elements.begin(), distinct_elements.end(), ar[i]) == distinct_elements.end()) {
distinct_elements.push_back(ar[i]);
}
}
std::sort(distinct_elements.begin(), distinct_elements.end());
// 如果只有一个或没有元素,则不可能有次小数
if (distinct_elements.size() <= 1) {
return 0;
}
// 返回次小元素之后的所有唯一元素数量,因为已排序
return cnt - distinct_elements.size();
}
```
这个函数首先将数组中的所有独特元素存储在一个向量中,然后对它们进行排序。如果数组中元素少于2个,说明不存在次小值,所以返回0。否则,就是原始数组长度减去独特元素的数量,即次小值的数量。
阅读全文