题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4006
参考思路:这道求第k大的数比较有特点,我们可以用一个优先级队列来完成同态的求第k大的数,优先级队列的大小为k,队头的元素对应队列中最小的元素,如果是询问第k大的数,只需得到队头元素,即为第k大的数,如果是增加一个元素num,要分两种情况处理,如果优先级队列大小小于k,则将num入队,否则,如果num小于队头元素,说明num以后不可能是第k大的数,因为已经有k个数比它大了,所以不做处理;等于的话,num也不需入队;如果num大于队头元素,则弹出队头元素,num入队,因为现在有k个元素比队头元素大了。
源代码: