写一个C++代码,给出一个long long 数组,输出不在数组中的最小非负整数
时间: 2024-10-06 10:03:32 浏览: 35
在C++中,我们可以编写一个程序来找到long long数组中未包含的最小非负整数。首先,我们需要遍历数组找出其范围,并在此基础上加一来得到第一个未在数组中存在的数字。下面是一个简单的示例:
```cpp
#include <iostream>
#include <vector>
long long findMissingNumber(const std::vector<long long>& arr) {
int n = arr.size();
long long first = *std::min_element(arr.begin(), arr.end());
long long last = *std::max_element(arr.begin(), arr.end());
// 如果数组为空或者只有一个元素,直接返回0或1
if (n == 0 || (first == 0 && last == 1)) {
return n ? first + 1 : 0;
}
// 计算并返回第一个大于last的非负整数
return first + n;
}
int main() {
std::vector<long long> array = {1, 3, 4, 5, 6};
long long missing_number = findMissingNumber(array);
std::cout << "The smallest non-negative integer not in the array is: " << missing_number << std::endl;
return 0;
}
```
在这个例子中,`findMissingNumber`函数接收一个`long long`类型的数组,然后计算并返回缺失的最小非负整数。
阅读全文