zoukankan      html  css  js  c++  java
  • 53.最小的k个数

     知识点:

    c++优先队列(priority_queue)用法详解

    push 插入元素到队尾 (并排序)

    priority_queue的常见用法

    priority_queue队列优先级的设置

    基本数据类型优先级的设置

    对于基础类型,一般是数字大的优先级高,对于字符,就是字典序越大,优先级越高。

    priority_queue<int> q;
    priority_queue<int,vector<int>,less<int>>;

    两种定义方式等价

    • vector是承载堆的容器
    • less是比较类,less表示数字大优先级大,greater表示数字大,优先级小

    思路

    代码

    class Solution {
    public:
        vector<int> GetLeastNumbers_Solution(vector<int> input, int k) {
            vector<int> res;
            priority_queue<int> heap;
            if(input.size()==0||k==0||k>input.size())  return res;
            //if(input.size() < k || k <= 0) return res;
            for(auto x : input)
            {
                heap.push(x);
                if(heap.size() > k) heap.pop(); 
            }
            
            while(heap.size())
            {
                res.push_back(heap.top());
                heap.pop();
            }
            reverse(res.begin(),res.end());
            return res;
            
        }
    };
    带女朋友搬家新家条件不好,累到女朋友了,让女朋友受苦了,特此明志:每天学习,明年这个时候(20190812)让女朋友住上大房子,永远年轻,永远热泪盈眶,很多人都是这样,他们都把自己当成身在梦中一样,浑浑噩噩地过日子,只有痛苦或爱或危险可以让他们重新感到这个世界的真实。
  • 相关阅读:
    java_八大数据类型
    java_实现Hello World
    Linux-ls命令
    Liunx下安装MySql
    Liunx-tail命令
    Liunx-history命令
    Linux-mkdir命令
    Linux-cp命令
    Linux-mv命令
    PBFT_拜占庭容错算法
  • 原文地址:https://www.cnblogs.com/make-big-money/p/12317994.html
Copyright © 2011-2022 走看看