移除自然数中某些整数后的第 k 小元素(用 C++ 实现)
在本教程中,我们将编写一个程序,以找出在从自然数中移除某些整数后得到的最小元素。
我们给出了一个元素数组和 k 值。从自然数中移除给定数组中存在的所有元素。然后从剩下的自然数中找出第 k 小的元素。
我们来看看解决此问题的步骤。
- 初始化数组和 k。
- 初始化一个数组,并用 0 初始化所有元素,但给定数组中存在的元素除外。
- 编写一个循环,迭代到给定数组的大小。
- 如果当前元素不存在于上述数组中,则减小 k 的值。
- 当 k 变为零时返回当前值。
- 返回 0。
示例
我们来看看代码。
#include <bits/stdc++.h>
#define MAX 1000000
using namespace std;
int smallestNumber(int arr[], int n, int k) {
int flag[MAX];
memset(flag, 0, sizeof flag);
for (int i = 0; i < n; i++) {
flag[arr[i]] = 1;
}
for (int i = 1; i < MAX; i++) {
if (flag[i] != 1) {
k--;
}
if (!k) {
return i;
}
}
return 0;
}
int main() {
int k = 2;
int arr[] = { 3, 5 };
cout << smallestNumber(arr, 2, k) << endl;
return 0;
}输出
如果您运行以上代码,则将得到以下结果。
2
结论
如果您对本教程有任何疑问,请在评论部分中提出。
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP