C++ 中使用 STL 查詢第 K 個最小值/最大值元素


在本教程中,我們將編寫一個程式,找出無序陣列中的第 k 個最小值。

我們來看看解決該問題的步驟。

  • 初始化陣列和 k。
  • 初始化一個空的有序集合。
  • 遍歷陣列並將每個元素插入陣列。
  • 從 0 到 k - 1 遍歷集合。
  • 返回該值。

示例

讓我們來看看程式碼。

 現場演示

#include <bits/stdc++.h>
using namespace std;
int findKthSmallestNumber(int arr[], int n, int k) {
   set<int> set;
   for (int i = 0; i < n; i++) {
      set.insert(arr[i]);
   }
   auto it = set.begin();
   for (int i = 0; i < k - 1; i++) {
      it++;
   }
   return *it;
}
int main() {
   int arr[] = { 45, 32, 22, 23, 12 }, n = 5, k = 3;
   cout << findKthSmallestNumber(arr, n, k) << endl;
   return 0;
}

輸出

如果你執行以上程式碼,那麼你將得到以下結果。

23

結論

如果你對本教程有任何疑問,請在評論部分提出。

更新於: 2021-04-09

745 次瀏覽

開始您的事業

完成課程以獲得認證

開始
廣告