LeetCode-40:最小的k个数

一、题目描述

在这里插入图片描述

二、解题思路

肯定要先排序,我们可以使用快速排序或者堆排序等等,或者就是STL中的sort函数

/*
class Solution {
public:
    vector<int> getLeastNumbers(vector<int>& arr, int k) {
        priority_queue<int, vector<int>, greater<int>> q;
        auto len = arr.size();
        for(auto i = 0; i < len; i++)
            q.push(arr[i]);
        vector<int> sln;
        for(int i = 0; i < k; i++){
            sln.push_back(q.top());
            q.pop();
        }
        return sln;
    }
};
*/
class Solution {
public:
    vector<int> getLeastNumbers(vector<int>& arr, int k) {
        sort(arr.begin(), arr.end());
        vector<int> sln;
        for(int i = 0; i < k; i++)
            sln.push_back(arr[i]);
        return sln;
    }
};

三、运行结果

上面sort排序,下面堆排序
在这里插入图片描述

发布了30 篇原创文章 · 获赞 3 · 访问量 821

猜你喜欢

转载自blog.csdn.net/weixin_44587168/article/details/105290995
今日推荐