剑指offer

最小的K个数

2019-03-21  本文已影响0人  momo1023
# -*- coding:utf-8 -*-
class Solution:
    def GetLeastNumbers_Solution(self, tinput, k):
        # write code here
        #此方法时间复杂度为O(nlogn)
        if k >len(tinput) or not tinput:
            return []
        #tinput.sort()
        #实现一个快速排序
        def quick_sort(array):
            if not array:
                return []
            pivot=array[0]
            left=quick_sort([x for x in array[1:] if x<pivot])
            right=quick_sort([x for x in array[1:] if x>=pivot])
            return left+[pivot]+right
        
        return quick_sort(tinput)[:k]
上一篇下一篇

猜你喜欢

热点阅读