牛客網 最小的k個數

2021-09-23 10:10:30 字數 576 閱讀 4915

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

解法1;利用最大堆,o(nlogk)

vectorgetleastnumbers_solution(vectorinput, int k) ;

vectorheap_input(input.begin(),input.begin()+k);

make_heap(heap_input.begin(),heap_input.end());

for(int i=k;i注意題目條件要考慮週期,對於k<=0這種情況開始沒有考慮,導致在牛客網上編譯通不過。

解法2:利用全排序  時間複雜度o(nlogn)

vectorgetleastnumbers_solution(vectorinput, int k) ;

vectorres;

sort(input.begin(),input.end());

for(int i=0;ireturn res;

}

牛客網 最小的k個數 解題報告 python

題目描述 輸入n個整數,找出其中最小的k個數。例如輸入4,5,1,6,2,7,3,8這8個數字,則最小的4個數字是1,2,3,4,解題方案 python內建函式sorted 採用快排進行排序,之後輸出前k個數 coding utf 8 class solution def getleastnumbe...

牛客 劍指offer系列題解 最小的K個數

記錄刷題的過程。牛客和力扣中都有相關題目,這裡以牛客的題目描述為主。該系列預設採用python語言。1 問題描述 輸入n個整數,找出其中最小的k個數。例如輸入4,5,1,6,2,7,3,8這8個數字,則最小的4個數字是1,2,3,4,2 資料結構 二叉樹,堆 3 題解 方法1 排序,取前k個數 co...

牛客網 質因數的個數

求正整數n n 1 的質因數的個數。相同的質因數需要重複計算。如120 2 2 2 3 5,共有5個質因數。可能有多組輸入資料,每組的測試資料是乙個正整數n 1 對於每組測試資料,輸出n的質因數的個數。1 這道題可以直接列印素數表,但是要注意用sqrt n 來降低複雜度,但是複雜度仍較高。2 因為任...