544. 前K大数优先队列

在一个数组中找到前K大的数 样例 给出 [3,10,1000,-99,4,100], k = 3. 返回 [1000, 100, 10]

优先队列

一种容易想到的是冒泡排序,每次冒泡都会冒出一个最大值,显然是可以的,写起来比较简单就不写了,另外一种可以使用优先队列即大顶堆,上次在合并数字的题目中也用到了,那次用的是小的在顶,无非是把类型改一下,可以再看一下:priority_queue. 用优先队列的话,只需要把数据全部放入队列之中(这是一种二分插入),然后取出前k个(取出top,然后pop掉top)就可以了:

  */
    vector<int> topk(vector<int> &nums, int k) {
        priority_queue<int> q_res;
        vector<int> res;
        for(auto n:nums)
        {
            q_res.push(n);
        }
        while(k--)
        {
            res.push_back(q_res.top());
            q_res.pop();
        }
        return res;
        // write your code here
    }

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏xingoo, 一个梦想做发明家的程序员

const修饰的双重指针赋值解惑

在c程序中,我们可能经常会使用到指针之间的赋值。 传统的赋值操作: char *cp = "c"; const char *ccp; ccp = cp; pri...

2249
来自专栏IT可乐

深入理解计算机系统(3.5)------特殊的算术操作指令

  在上一篇博客 算术和逻辑操作 我们介绍了如下图几种常用的算术逻辑指令,但是大家发现没,这几种指令如果在 IA32 上只能操作32位寄存器,比如我用乘法指令I...

2057
来自专栏JetpropelledSnake

Python入门之函数的介绍/定义/定义类型/函数调用/Return

 本篇目录:     一、 函数的介绍     二、 函数的定义     三、 定义函数的三种类型     四、 函数调用的阶段     五、 Return返回...

3795
来自专栏深度学习之tensorflow实战篇

python 字典操作提取key,value

python 字典操作提取key,value dictionaryName[key] = value 1.为字典增加一项 ? 2.访问字典中的值 ...

4615
来自专栏Android小菜鸡

JS立即执行函数的学习

格式一:(function(){})() 格式二:(funtion(){}())

1262
来自专栏iOS开发攻城狮的集散地

run timeimport : 成员变量、类、方法

1839
来自专栏zingpLiu

面向对象(三)【类的特殊成员及高级特性】

前面两篇文章介绍了类与对象的基本概念和类中的一些成员,本篇主要介绍类和对象的特殊成员及一些高级特性。

1013
来自专栏用户2442861的专栏

剑指offer 33 把数组排成最小的数

转载请注明出处:http://blog.csdn.net/ns_code/article/details/28128551

1172
来自专栏coding

python实用技巧:在列表,字典,集合中快速筛选数据

2125
来自专栏mukekeheart的iOS之旅

OC学习10——内存管理

1、对于面向对象的语言,程序需要不断地创建对象。这些对象都是保存在堆内存中,而我们的指针变量中保存的是这些对象在堆内存中的地址,当该对象使用结束之后,指针变量指...

2345

扫码关注云+社区

领取腾讯云代金券