C++ 中排序陣列中第 k 個缺失元素
在本教程中,我們將編寫一個程式,找出給定排序陣列中第 k 個缺失元素。
找到在給定無序陣列中從最小值到最大值之間缺失的第 k 個數字。讓我們看看解決問題的步驟。
- 初始化排序陣列。
- 使用 k 初始化兩個變數 difference 和 count。
- 遍歷陣列。
- 如果當前元素不等於下一個元素。
- 找到這兩個數字之間的差值。
- 如果差值大於或等於 k,則返回當前元素加上 count。
- 否則從 count 中減去差值。
- 如果當前元素不等於下一個元素。
- 返回 -1。
示例
讓我們看看程式碼。
#include <bits/stdc++.h>
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
結論
如果您在本教程中有任何疑問,請在評論區提出。
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP