从 C++ 中的自然数中删除一些整数后的第 K 个最小元素
在本教程中,我们将编写一个程序,从自然数中删除一些整数后找出最小元素。
我们已经给出了一个元素数组和k值。从给定数组中存在的自然数中删除所有元素。然后从剩余的自然数中找出第k个最小的数。
让我们看看解决问题的步骤。
初始化数组和k。
初始化一个数组并将所有元素初始化为0,除了给定数组中存在的元素。
编写一个循环,迭代到给定数组的大小。
如果当前元素不存在于上述数组中,则递减k的值。
当k变为零时返回当前值。
返回0。
示例
让我们看看代码。
#include输出结果#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
结论
如果您对本教程有任何疑问,请在评论部分提及。