题解 | #最小的K个数#

最小的K个数

https://www.nowcoder.com/practice/6a296eb82cf844ca8539b57c23e6e9bf

解题思路:使用堆排序

class Solution {
public:
    void HeapAdjust(vector<int> &nums,int i,int heapsize) 
    {
        int left = 2*i+1;
        int right = 2*i+2;
        int smaller = i;
        if(left < heapsize && nums[smaller] >= nums[left])
            smaller = left;
        if(right < heapsize && nums[smaller] >= nums[right])
            smaller = right;
        if(smaller != i)
        {
            int temp = nums[smaller];
            nums[smaller] = nums[i];
            nums[i] = temp;
            HeapAdjust(nums, smaller, heapsize);
        }
    }  
    vector<int> GetLeastNumbers_Solution(vector<int> input, int k) {
        int n = input.size();
        for(int i = n/2;i>=0;--i)
            HeapAdjust(input, i, n);
        vector<int> res;
        for(int i = n-1;i>=n-k;--i)
        {
            res.push_back(input[0]);
            swap(input[0],input[i]);
            HeapAdjust(input, 0, i);
        }
        return res;
        
    }
};

全部评论

相关推荐

nus22016021404:兄弟,你这个简历撕了丢了吧,就是一坨,去找几个项目,理解项目流程,看几遍就是你的了,看看八股就去干了,多看看牛客里别人发出来的简历,对着写,你这写的啥啊,纯一坨
点赞 评论 收藏
分享
门口唉提是地铁杀:之前b站被一个游戏demo深深的吸引了。看up主页发现是个初创公司,而且还在招人,也是一天60。二面的时候要我做一个登录验证和传输文件两个微服务,做完要我推到github仓库,还要我加上jaeger和一堆运维工具做性能测试并且面试的时候投屏演示。我傻乎乎的做完以后人家跟我说一句现在暂时不招人,1分钱没拿到全是白干
点赞 评论 收藏
分享
06-07 21:26
江南大学 C++
话不多说,直接上时间线和图片1.2024年10月底发offer,并签三方2.2025年5月底公司违约
从零开始的转码生活:希望所有签了三方但直接违约的公司都倒闭!都倒闭!都倒闭!
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务