北美程序员面试干货

LintCode 544 [Top k Largest Numb

2016-06-27  本文已影响266人  Jason_Yuan

原题

在一个数组中找到前K大的数

样例
给出 [3,10,1000,-99,4,100], k = 3.
返回 [1000, 100, 10]

解题思路

完整代码

import Queue

class Solution:
    '''
    @param {int[]} nums an integer array
    @param {int} k an integer
    @return {int[]} the top k largest numbers in array
    '''
    def topk(self, nums, k):
        # Write your code here
        res = []
        if not nums or k == 0:
            return res
            
        MaxHeap = Queue.PriorityQueue()
        for num in nums:
            MaxHeap.put(-num)
        
        for i in range(k):
            res.append(-MaxHeap.get())
        
        return res
上一篇 下一篇

猜你喜欢

热点阅读