C++ 中兩個已排序陣列的 k-th 元素
在本教程中,我們將編寫一個程式來查詢兩個已排序陣列的合併陣列中的第 k 個元素。
讓我們看看解決此問題的步驟。
- 初始化兩個已排序陣列。
- 初始化一個大小為 m + n 的空陣列。
- 將這兩個數組合併到新陣列中。
- 從合併後的陣列中返回第 k - 1 個元素。
示例
讓我們看看程式碼。
#include <iostream> using namespace std; int findKthElement(int arr_one[], int arr_two[], int m, int n, int k) { int sorted_arr[m + n]; int i = 0, j = 0, index = 0; while (i < m && j < n) { if (arr_one[i] < arr_two[j]) { sorted_arr[index++] = arr_one[i++]; }else { sorted_arr[index++] = arr_two[j++]; } } while (i < m) { sorted_arr[index++] = arr_one[i++]; } while (j < n) { sorted_arr[index++] = arr_two[j++]; } return sorted_arr[k - 1]; } int main() { int arr_one[5] = {1, 3, 5, 7, 9}, arr_two[5] = {2, 4, 6, 8, 10}; int k = 7; cout << findKthElement(arr_one, arr_two, 5, 4, k) << endl; return 0; }
輸出
如果執行上述程式碼,則將獲得以下結果。
7
結論
如果對本教程有任何疑問,請在評論部分中提及。
廣告