【剑指offer】面试题—最小的k个数

一、题目描述

输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4。

二、代码实现

# -*- coding:utf-8 -*-
class Solution:
    def GetLeastNumbers_Solution(self, tinput, k):
        # write code here
        if k > len(tinput): return []
        import heapq
        max_heap = []
        for val in tinput:
            val = -val
            if len(max_heap) < k:
                heapq.heappush(max_heap, val)
            else:
                heapq.heappushpop(max_heap, val)
        res = sorted([-max_heap[i] for i in range(len(max_heap))])
        return res
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容