C ++中排序数组中的第k个缺失元素
在本教程中,我们将编写一个程序,找出给定排序数组中的第k个缺失元素。
在给定的未排序数组中找到从min到max缺失的第k个数字。让我们看看解决问题的步骤。
初始化排序后的数组。
初始化两个变量差异并用k计数。
遍历数组。
找出两个数字之间的差异。
如果差值大于或等于k,则返回当前元素加上计数。
否则从计数中减去差异。
如果当前元素不等于下一个元素。
返回-1。
示例
让我们看看代码。
#include输出结果using namespace std; int findMissingNumber(int arr[], int k, int n) { int difference, count = k; for(int i = 0 ; i < n - 1; i++) { if ((arr[i] + 1) != arr[i + 1]) { difference = arr[i + 1] - arr[i] - 1; if (difference >= count) { return arr[i] + count; }else { count -= difference; } } } return -1; } int main() { int arr[] = { 1, 2, 3, 5, 10 }, n = 5; int k = 3; cout << findMissingNumber(arr, k, n) << endl; return 0; }
如果你运行上面的代码,那么你会得到下面的结果。
7
结论
如果您对本教程有任何疑问,请在评论部分提及。