輸入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 因為任...