时间限制:1秒
空间限制:32768K
热度指数:185564
算法知识视频讲解
题目描述
输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。
/*用快速排序,时间复杂度为O(nlogn)*/
class Solution {
public:
vector<int> GetLeastNumbers_Solution(vector<int> input, int k) {
vector<int>ans;
if(input.empty()||k>input.size()) return ans;
sort(input.begin(),input.end());
for(int i=0;i<k;i++)
ans.push_back(input[i]);
return ans;
}
};
用堆排序算法,构建最大堆。时间复杂度为O(nlogk),待补。