c set求一群數中最小的k個數

2021-09-24 23:15:08 字數 556 閱讀 2298

【問題描述】

輸入n個整數,找出其中最小的k(k<=n)個不同數。例如輸入4,5,1,6,1,7,3,8這8個數字,則最小的4個數字是1,3,4,5。

【輸入形式】

每個測試案例包括2行:

第一行為2個整數n,k(1<=n,k<=200000),表示陣列的長度。

第二行包含n個整數,表示這n個數,陣列中的數的範圍是[0,1000 000 000]。

【輸出形式】

對應每個測試案例,輸出最小的k個數,並按從小到大順序列印(如果不存在k個不同的數,則按照實際數量進行輸出)。

【樣例輸入】

8 44 5 1 6 2 7 3 8

【樣例輸出】

1 2 3 4

#include#includeusing namespace std;

set >settest;

int main()

set >::reverse_iterator i=settest.rbegin();

for(d=0;dreturn 0;

}

求最小的K個數

方法一 利用快排的思想,複雜度為o n class solution input low pivot return low vector getleastnumbers solution vector input,int k else vector res input.begin input.beg...

找出陣列中最小的k個數

leetcode 面試題40.最小的k個數 快速排序,時間複雜度為nlogn,然後前k個元素就是最小的k個數 class solution 原理也是快速排序的原理,只不過增加了停止條件。不用完全排序而已。class solution int label quicksort arr,0,arr.len...

求最小的第K個數

演算法分析 除了排序。大小堆,還可以用排序的演算法。我們每次以乙個基準元素進行快速排序,排序完之後,看這個基準元素的位置是否為k位置,如果大於k,那麼說明第k 小的元素在基準元素的左邊。然後從右邊選取基準元素進行快排。如果小於k,演算法相反 include include include inclu...